Comparing two revisions:

Revisions for Comparing Popular Version Control Systems

Mon, 2010-02-01 12:59 by adminTue, 2010-02-02 16:31 by admin

New command for importing subversion branches correctly

Changes to Taxonomy
-
Blog
+
Project
 
Bazaar
 
Bazaar
  +
Compare
 
CVS
 
CVS
 
Git
 
Git
Changes to Body
 
to deal with huge opensource projects and on the run software
 
to deal with huge opensource projects and on the run software
 
development. We should to be able to change anything, anywhere,
 
development. We should to be able to change anything, anywhere,
-
anytime, and keep track of all this changes</p><p>My main focus on this article is Bazaar but you'll see notes from my friend Antoni who is a Mercusial user.</p><p>Migration :</p><p>This is the most imortant part, if you can't migrate you code's history then that would be a huge problem.</p><p>Bazaar
+
anytime, and keep track of all this changes</p><p>My main focus on this article is Bazaar but you'll see notes from my friend Antoni who is a Mercusial user.</p><p>Plugins :</p><p>Bazaar like the other three supports plugins , in my expreince <a href="http://wiki.bazaar.canonical.com/BzrPlugins?action=show&amp;redirect=UsingPlugins#Installing%20a%20plugin">installing Bazaar plugins</a> is as easy as downloading and the extracting it into the plugins folder. That's it. it's even easier even windows.</p><p>Integration : </p><p>Bazaar
-
offers several ways for migrating SVN repositories , each one has its
+
-
own limitations but the one i picked was bzr-import and bzr-svn</p><p>Plugins :</p><p>Bazaar like the other three supports plugins , in my expreince <a href="http://wiki.bazaar.canonical.com/BzrPlugins?action=show&amp;redirect=UsingPlugins#Installing%20a%20plugin">installing Bazaar plugins</a> is as easy as downloading and the extracting it into the plugins folder. That's it. it's even easier even windows.</p><p>Integration : </p><p>Bazaar
+
 
has a plugin for Eclipse, the installation proccess was not as smooth
 
has a plugin for Eclipse, the installation proccess was not as smooth
 
as subversion but i can't say that it was difficult. i had to manually
 
as subversion but i can't say that it was difficult. i had to manually
 
is also another website for comparing Bazaar and Git , they approche is
 
is also another website for comparing Bazaar and Git , they approche is
 
interesting and it's based on personal experience using Tweeter!
 
interesting and it's based on personal experience using Tweeter!
-
http://www.bzrvsgit.com/</p><p>&nbsp;</p><p>To get started with bazaar as fast as you possible with subversion backgound : <a href="http://wiki.bazaar.canonical.com/BzrForSVNUsers">BzrForSVNUsers - Bazaar Version Control</a> and <a href="http://doc.bazaar.canonical.com/migration/en/survival/bzr-for-svn-users.html">Bazaar for Subversion users — Bazaar Migration Docs</a></p><p>&nbsp;</p><h3>Short Guide for Bazaar To SVN migration</h3><p>I assume that you're alteast know what Bazaar is! and why you want to try it. if you don't then please<br>spend some time and read the User Guide documetnation of bazaar's site before continuing<br><br>Karmic : <br>Add this repository for bazaar gui (known as bazaar explorer)</p><p>{syntaxhighlighter brush: bash;fontsize: 100; first-line: 1; }ppa:bzr-explorer-dev/ppa{/syntaxhighlighter}</p><p>Bazaar
+
http://www.bzrvsgit.com/</p><p>&nbsp;</p><p>To get started with bazaar as fast as you possible with subversion backgound : <a href="http://wiki.bazaar.canonical.com/BzrForSVNUsers">BzrForSVNUsers - Bazaar Version Control</a> and <a href="http://doc.bazaar.canonical.com/migration/en/survival/bzr-for-svn-users.html">Bazaar for Subversion users — Bazaar Migration Docs</a></p><p>&nbsp;</p><h3>Short Guide for Bazaar To SVN migration</h3><p>Karmic : <br>Add this repository for bazaar gui (known as bazaar explorer)</p><p>{syntaxhighlighter brush: bash;fontsize: 100; first-line: 1; }ppa:bzr-explorer-dev/ppa{/syntaxhighlighter}</p><p><br>If you're not using ubuntu karmic more iformation here :&nbsp; https://launchpad.net/~bzr-explorer-dev/+archive/ppa</p><p>{syntaxhighlighter brush: bash;fontsize: 100; first-line: 1; }sudo apt-get install bzr bzr-explorer bzr-svn{/syntaxhighlighter}</p><p>Note :
-
currently does not support all of subversoin features, so please make
+
-
sure that your project does not depend on those featues : <br>http://wiki.bazaar.canonical.com/BzrForeignBranches/Subversion#id50<br><br>If you're not using ubuntu karmic more iformation here :&nbsp; https://launchpad.net/~bzr-explorer-dev/+archive/ppa</p><p>{syntaxhighlighter brush: bash;fontsize: 100; first-line: 1; }sudo apt-get install bzr bzr-explorer bzr-svn{/syntaxhighlighter}</p><p>Lets dump subversion :]</p><p>{syntaxhighlighter brush: bash;fontsize: 100; first-line: 1; }REPO_PATH="/home/salek/Projects/All/My Projects/General Lib/general_lib_repo"
+
-
WORKING_COPY_PATH="/home/salek/Projects/All/My Projects/General Lib/general_lib2"
+
-
REPO_DUMP_PATH="/home/salek/Desktop/repo.dump"
+
-
DEST_PATH="/media/disk"
+
-
TEMP_DEST_PATH="/home/salek/Desktop"
+
-
+
-
svnadmin dump "$REPO_PATH" &gt; "$TEMP_DEST_PATH/repo.dump"
+
-
cd "$TEMP_DEST_PATH"
+
-
tar -cvpjf "$TEMP_DEST_PATH/repo.tar.bz2" "repo.dump"
+
-
mv "$TEMP_DEST_PATH/repo.tar.bz2" "$DEST_PATH/"
+
-
safe-rm -rf "$TEMP_DEST_PATH/repo.dump"{/syntaxhighlighter}</p><p>Preparing Bazaar repositories (Not required) : </p><p>{syntaxhighlighter brush: bash;fontsize: 100; first-line: 1; }mkdir -p vcs/bazaar/general_lib
+
-
bzr init-repo vcs/bazaar/general_lib #(prepare local repository)
+
-
cd vcs/bazaar/general_lib
+
-
+
-
bzr init sftp://base.pt2.com/vcs/bazaar/general_lib/trunk
+
-
bzr checkout sftp://base.pt2.com/vcs/bazaar/general_lib/trunk
+
-
cd trunk
+
-
cp -ar ~/PROJECT . #(copy files in using OS-specific tools)
+
-
bzr add #(populate repository; start version control)
+
-
bzr commit -m "Initial import"{/syntaxhighlighter}</p><p>Importing subversion dump into bazaar center repository:</p><p>{syntaxhighlighter brush: bash;fontsize: 100; first-line: 1; }bzr svn-import /home/salek/Desktop/repo.dump vcs/bazaar/general_lib{/syntaxhighlighter}</p><p>Now pushing the local branch into the centeral repository (Not required)</p><p>{syntaxhighlighter brush: bash;fontsize: 100; first-line: 1; }bzr push sftp://base.pt2.com/vcs/bazaar/general_lib #(publish to central repository){/syntaxhighlighter}</p><p>Checking out working copy : </p><p>{syntaxhighlighter brush: bash;fontsize: 100; first-line: 1; }mkdir -p vcs/bazaar/general_lib_working_copy
+
-
cd vcs/bazaar/general_lib_working_copy
+
-
bzr checkout ~/vcs/bazaar/general_lib/trunk{/syntaxhighlighter}</p><p>How to migrate the changes in working copies : <br>As
+
-
you know subversion does not support local history, you always depend
+
-
on the central repository, therefore for migrating non comited chagnes<br>into the repositoy there are few ways : </p><ul><li>Commit all the changes if they're ready and then migrate</li><li>Create a new branch and commit not ready change into that branch</li><li>If your working copy does not have and rename changes, delete all .svn
+
-
folder , and paste it on your new bazaar branch after the migration<br>&nbsp;
+
-
bazaar does not have spcially folders inside all directory like
+
-
subversion there is only of on branch's root, so it's possible.</li><li>If it also has renames or moves there is a pluging for detecing it http://doc.bazaar-vcs.org/plugins/en/automv-plugin.html,</li><li>i ddin't use this plugin&nbsp; and i don't know how well it works.</li></ul><p>If
+
-
you have a project on source forge , migration is still possible :
+
-
https://sourceforge.net/apps/trac/sourceforge/wiki/SVN%20adminrepo ,
+
-
you'll also need to enable bazaar after that
+
-
https://sourceforge.net/apps/trac/sourceforge/ticket/3691</p><p>Note :
+
 
Bazaar changes rapidly and free vcs service might no be updatodate,
 
Bazaar changes rapidly and free vcs service might no be updatodate,
 
sourceforge uses 1.18 , in this case you'll need create using repo
 
sourceforge uses 1.18 , in this case you'll need create using repo
 
: Be careful with reviews, most of this version control systems are
 
: Be careful with reviews, most of this version control systems are
 
undel active developement, an issue that exists now might be more than
 
undel active developement, an issue that exists now might be more than
-
fix few month later. Alaywas check the review date before relying on it.</p><h3>Resources : </h3><ul><li>Exporting as xml : http://doc.bazaar-vcs.org/plugins/en/xmloutput-plugin.html</li><li>Plugin for checking commands before commit : http://doc.bazaar.canonical.com/plugins/en/testrunner-plugin.html</li><li>http://doc.bazaar.canonical.com/bzr.2.0/en/user-guide/publishing_a_branch.html</li><li>https://launchpad.net/~bzr-explorer-dev/+archive/ppa</li><li>http://doc.bazaar.canonical.com/latest/en/user-guide/bazaar_workflows.html</li><li>http://wiki.bazaar.canonical.com/BzrExplorer</li><li>https://launchpad.net/bzr-explorer</li><li>http://svn.borg.ch/svndumptool/0.5.0/</li><li>http://svnbook.red-bean.com/en/1.1/ch05s03.html#svn-ch-5-sect-3.1.2</li><li>http://blogs.nuxeo.com/sections/blogs/julien_anguenot/2006_04_21_dump-load-svn-repositories-using-svnadmin-svndumpfilter</li><li>http://wiki.bazaar.canonical.com/svn2bzr</li><li><a href="http://wiki.bazaar.canonical.com/svn2bzr">svn2bzr - Bazaar Version Control</a></li><li><a href="http://doc.bazaar.canonical.com/migration/en/survival/bzr-for-svn-users.html">Bazaar for Subversion users — Bazaar Migration Docs</a></li><li><a href="http://wiki.bazaar.canonical.com/BzrForSVNUsers">BzrForSVNUsers - Bazaar Version Control</a></li><li><a href="http://wiki.bazaar.canonical.com/Tutorials/CentralizedWorkflow">Tutorials/CentralizedWorkflow - Bazaar Version Control</a></li><li><a href="http://wiki.bazaar.canonical.com/IDEIntegration">IDEIntegration - Bazaar Version Control</a></li><li><a href="http://markpasc.livejournal.com/186489.html">assert(♥) - git equivalent to “svn copy” for forking files with history?</a></li><li><a href="http://doc.bazaar.canonical.com/migration/en/foreign/bzr-on-svn-projects.html#bzr-svn-limitations">Using Bazaar on Subversion projects — Bazaar Migration Docs</a>
+
fix few month later. Alaywas check the review date before relying on it.</p><p>Note : The age of single all-in-one solution is over, each solution has its pros and cons. same applies to VCSs, each version control system different issues</p><h3>Resources : </h3><ul><li>Exporting as xml : http://doc.bazaar-vcs.org/plugins/en/xmloutput-plugin.html</li><li>Plugin for checking commands before commit : http://doc.bazaar.canonical.com/plugins/en/testrunner-plugin.html</li><li>http://doc.bazaar.canonical.com/bzr.2.0/en/user-guide/publishing_a_branch.html</li><li>https://launchpad.net/~bzr-explorer-dev/+archive/ppa</li><li>http://doc.bazaar.canonical.com/latest/en/user-guide/bazaar_workflows.html</li><li>http://wiki.bazaar.canonical.com/BzrExplorer</li><li>https://launchpad.net/bzr-explorer</li><li>http://svn.borg.ch/svndumptool/0.5.0/</li><li>http://svnbook.red-bean.com/en/1.1/ch05s03.html#svn-ch-5-sect-3.1.2</li><li>http://blogs.nuxeo.com/sections/blogs/julien_anguenot/2006_04_21_dump-load-svn-repositories-using-svnadmin-svndumpfilter</li><li><a href="http://wiki.bazaar.canonical.com/svn2bzr">svn2bzr - Bazaar Version Control</a></li><li><a href="http://doc.bazaar.canonical.com/migration/en/survival/bzr-for-svn-users.html">Bazaar for Subversion users — Bazaar Migration Docs</a></li><li><a href="http://wiki.bazaar.canonical.com/BzrForSVNUsers">BzrForSVNUsers - Bazaar Version Control</a></li><li><a href="http://wiki.bazaar.canonical.com/Tutorials/CentralizedWorkflow">Tutorials/CentralizedWorkflow - Bazaar Version Control</a></li><li><a href="http://wiki.bazaar.canonical.com/IDEIntegration">IDEIntegration - Bazaar Version Control</a></li><li><a href="http://markpasc.livejournal.com/186489.html">assert(♥) - git equivalent to “svn copy” for forking files with history?</a></li><li><a href="http://doc.bazaar.canonical.com/migration/en/foreign/bzr-on-svn-projects.html#bzr-svn-limitations">Using Bazaar on Subversion projects — Bazaar Migration Docs</a>
 
</li></ul>
 
</li></ul>
Revision of Tue, 2010-02-02 16:31:

Comparing Version Control Systems : Bazaar vs Mercurial (hg) vs Git

Toturial

It's about the sixth year since my first commit on subversion, Moving from CVS to subversion was really amazing, subversion was sueprior in many ways and it served me well. But the age of Centralized version control systems is over, we need much more power full softwares to deal with huge opensource projects and on the run software development. We should to be able to change anything, anywhere, anytime, and keep track of all this changes

My main focus on this article is Bazaar but you'll see notes from my friend Antoni who is a Mercusial user.

Plugins :

Bazaar like the other three supports plugins , in my expreince installing Bazaar plugins is as easy as downloading and the extracting it into the plugins folder. That's it. it's even easier even windows.

Integration :

Bazaar has a plugin for Eclipse, the installation proccess was not as smooth as subversion but i can't say that it was difficult. i had to manually add the bzr binary and plugin folders location and also coinfugre few options (All couldn't be pre configured). But according to BzrEclipse roadmap, it's going to be much better soon. number of feature is also very limited comparing to subversion.

Antonio Note :

What of the things which is very important for is the future plans :

Bazaar roadmap And also it looks like that bazaar developers really care about their users ThreeWishes - Bazaar Version Control , Bazaar also has Bazaar Performance Roadmap

There is a new website for comparing git with others, very useful. whygitisbetterthanx.com

There is also another website for comparing Bazaar and Git , they approche is interesting and it's based on personal experience using Tweeter! http://www.bzrvsgit.com/

 

To get started with bazaar as fast as you possible with subversion backgound : BzrForSVNUsers - Bazaar Version Control and Bazaar for Subversion users — Bazaar Migration Docs

 

Short Guide for Bazaar To SVN migration

Karmic :
Add this repository for bazaar gui (known as bazaar explorer)

ppa:bzr-explorer-dev/ppa


If you're not using ubuntu karmic more iformation here :  https://launchpad.net/~bzr-explorer-dev/+archive/ppa

sudo apt-get install bzr bzr-explorer bzr-svn

Note : Bazaar changes rapidly and free vcs service might no be updatodate, sourceforge uses 1.18 , in this case you'll need create using repo using old format on local before import.

Note : While i was trying to migrate one of my sourceproject from svn to bzr, i came into some very nasty issue due to the differece between server and local bzr version. bazaar supports various different tree formats which can causes lots of headaches. this command helped https://sourceforge.net/apps/trac/sourceforge/ticket/517

Note : Mercurial is much better integrated with other applications, for example currently netbeans does not support bezaar. more information here IDEIntegration - Bazaar Version Control

Note: I don't recommend bazaar for non technical people

Note : Be careful with reviews, most of this version control systems are undel active developement, an issue that exists now might be more than fix few month later. Alaywas check the review date before relying on it.

Note : The age of single all-in-one solution is over, each solution has its pros and cons. same applies to VCSs, each version control system different issues

Resources :

Your rating: None Average: 2.4 (47 votes)