Comparing two revisions:
بازنگری ها برای Comparing Popular Version Control Systems
| د, 1388-11-12 12:59 توسط admin | س, 1388-11-13 16:31 توسط admin | ||
|---|---|---|---|
New command for importing subversion branches correctly | |||
| next diff > | |||
| Changes to طبقه بندی | |||
| - | 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&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&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> </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> </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> </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> </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 : 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 : 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" > "$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>
| + | |
| - | 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 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> | ||
Comparing Version Control Systems : Bazaar vs Mercurial (hg) vs Git
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 :
- Exporting as xml : http://doc.bazaar-vcs.org/plugins/en/xmloutput-plugin.html
- Plugin for checking commands before commit : http://doc.bazaar.canonical.com/plugins/en/testrunner-plugin.html
- http://doc.bazaar.canonical.com/bzr.2.0/en/user-guide/publishing_a_branc...
- https://launchpad.net/~bzr-explorer-dev/+archive/ppa
- http://doc.bazaar.canonical.com/latest/en/user-guide/bazaar_workflows.html
- http://wiki.bazaar.canonical.com/BzrExplorer
- https://launchpad.net/bzr-explorer
- http://svn.borg.ch/svndumptool/0.5.0/
- http://svnbook.red-bean.com/en/1.1/ch05s03.html#svn-ch-5-sect-3.1.2
- http://blogs.nuxeo.com/sections/blogs/julien_anguenot/2006_04_21_dump-lo...
- svn2bzr - Bazaar Version Control
- Bazaar for Subversion users — Bazaar Migration Docs
- BzrForSVNUsers - Bazaar Version Control
- Tutorials/CentralizedWorkflow - Bazaar Version Control
- IDEIntegration - Bazaar Version Control
- assert(♥) - git equivalent to “svn copy” for forking files with history?
- Using Bazaar on Subversion projects — Bazaar Migration Docs


