Comparing two revisions:
بازنگری ها برای Comparing Popular Version Control Systems
| ش, 1389-01-14 13:10 توسط admin | ش, 1389-01-14 17:06 توسط admin | ||
|---|---|---|---|
Some more notes about integration | Cleaning up the article | ||
| < previous diff | next diff > | ||
| Changes to Body | |||
| - | <p><strong>Why another comparison review!!?</strong></p><p>Perhaps becuase many of other reviews are either outdated or unfair.</p><p><strong>What's the difference between this and the others!!?</strong></p><p>There are three differences.</p><ul><li><em> The first</em> : Most of the current reviews are written by a user of one of this softwares so the author can't be fair since he has much less experience with the others, in this article however i only write about Bazaar and let the users of other DVCSs to participate and write about their favorite software.</li><li><em>The second</em> : There are many resources available regarding to this topic and each one
| + | <p><strong>Why another comparison review!!?</strong></p><p>Perhaps becuase many of other reviews are either outdated or unfair.</p><p><strong>What's the difference between this and the others!!?</strong></p><p>There are three differences.</p><ol><li style="text-align: justify;"><em> </em>Most of the current reviews are written by a user of one of this softwares so the author can't be fair since he has much less experience with the others, in this article however i only write about Bazaar and let the users of other DVCSs to participate and write about their favorite software.</li><li style="text-align: justify;"><em></em>There are many resources available regarding to this topic and each one
|
has pros and cons. But the main issue i have with them is that most of
| has pros and cons. But the main issue i have with them is that most of
| ||
them are outdated because all this DVCSs are under very active
| them are outdated because all this DVCSs are under very active
| ||
if you like to read resources on other sites i suggest you to check the
| if you like to read resources on other sites i suggest you to check the
| ||
date they've been published before relying on them. (You can subscribe to this page's RSS/Feed in order to be notices of the
| date they've been published before relying on them. (You can subscribe to this page's RSS/Feed in order to be notices of the
| ||
| - | new updates.)</li><li><em>The third :</em> This article is practical becuase it includes personal experiences from users of all these DVCSs, and chalenges they've faced using them ,not only what's been written in Documentations</li></ul><p style="text-align: justify;"><span>It's about the sixth years since my first commit
| + | new updates.)</li><li style="text-align: justify;"><em></em>This article is practical because it includes personal experiences from users of all these DVCSs, and challenges they've faced using them ,not only what's been written in Documentations</li></ol><p style="text-align: justify;"><span>It's about the sixth years since my first commit
|
using Subversion,
| using Subversion,
| ||
Moving from CVS to Subversion was really amazing, Subversion was
| Moving from CVS to Subversion was really amazing, Subversion was
| ||
anyone, on anything, anywhere ,
| anyone, on anything, anywhere ,
| ||
at anytime, and also keep track of all this activities.</span></p><p style="text-align: justify;">The age of single all-in-one solution is over in many fields including Version Control Systems, each solution has its
| at anytime, and also keep track of all this activities.</span></p><p style="text-align: justify;">The age of single all-in-one solution is over in many fields including Version Control Systems, each solution has its
| ||
| - | own pros and cons and Same applies to VCSs. So in this article i'm going to compare three major DVCSs available.</p><p>My main focus on this article is Bazaar since i've
| + | own pros and cons and Same applies to VCSs. So in this article i'm going to compare three major DVCSs available.</p><p style="text-align: justify;">My main focus on this article is Bazaar since i've
|
decided to start (You can read why i decided to start with Bazaar at the Conclusions
| decided to start (You can read why i decided to start with Bazaar at the Conclusions
| ||
section) but i asked my friend <a href="http://drupal.org/user/334209">Antoni</a> who is a Mercurial(HG)
| section) but i asked my friend <a href="http://drupal.org/user/334209">Antoni</a> who is a Mercurial(HG)
| ||
user to help with all sections related to HG. Kudus
| user to help with all sections related to HG. Kudus
| ||
| - | to him. Currently i use whygitisbetterthanx.com site for Git but i'm also looking for Git user to share his personal experience by using Git with me. So if you're Git user i'll be more than happy to hear your opinion :)</p><h3>Installation</h3><h4>Bazaar</h4><p>Karmic : <br>Add this repository for Bazaar gui
| + | to him. Currently i use whygitisbetterthanx.com site for Git but i'm also looking for Git user to share his personal experience by using Git with me. So if you're Git user i'll be more than happy to hear your opinion :)</p><h3>Installation</h3><h4>Bazaar</h4><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>If
| (known as bazaar explorer)</p><p>{syntaxhighlighter brush: bash;fontsize: 100; first-line: 1; }ppa:bzr-explorer-dev/ppa{/syntaxhighlighter}</p><p>If
| ||
| + | |||
you're not using Ubuntu Karmic more information here :
| you're not using Ubuntu Karmic more information 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
| 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><h3>Integration </h3><p>Software development without using third-party applications and IDEs is a waste of time! So we should able to use our favoride VCS via our favorite IDE!</p><h4>Bazaar </h4><p>Has a plugin for Eclipse, the installation process was not as smooth
| + | {/syntaxhighlighter}</p><h3>Migration </h3><p>Obviously any DVCSs without proper migration
|
| + | utilities is useless for most projects, so lets see what each one has to
| ||
| + | offer.</p><h4>Bazaar </h4><p>To get started with bazaar as fast as you
| ||
| + | possible with subversion
| ||
| + | background : <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>You
| ||
| + | might want to have look at [#1315]</p><p style="text-align: justify;">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 difference between server and local bzr
| ||
| + | version, however bazaar developers say that in 2.x serious and upwards
| ||
| + | it's no longer a issue. bazaar supports various different tree formats
| ||
| + | which can
| ||
| + | causes lots of headaches. this command helped
| ||
| + | https://sourceforge.net/apps/trac/sourceforge/ticket/517</p><h3>Performance</h3><h4>Bazaar</h4><h4>Git</h4><h4>Mercurial</h4><h3>Features</h3><p>All
| ||
| + | of the major DVCSs have the important features so i'll skip the feature
| ||
| + | that are available on all of them. Also this part is mostly a respond
| ||
| + | to <a href="http://whygitisbetterthanx.com">whygitisbetterthanx.com</a>
| ||
| + | because it seems that the information they're providing is not accurate.</p><h4>Cheap
| ||
| + | local branching</h4><h5>Bazaar</h5><p>As far as i know, Bazaar
| ||
| + | currently does support this
| ||
| + | feature, but developers are working on it, i'll write more when i
| ||
| + | gathered more accurate information.</p><h5>Git</h5><p>According to <a href="http://whygitisbetterthanx.com">whygitisbetterthanx.com</a>
| ||
| + | git has this feature in a very good way!</p><h5>Mercurial</h5><h4>Staging</h4><h5>Git</h5><p>According
| ||
| + | to whygitisbetterthanx.com git has this feature in a very good way!</p><h5>Bazaar</h5><p>Bazaar
| ||
| + | has this feature but not out of the box, they only thing you need to do
| ||
| + | is creating another branch and bind you current branch to it, then
| ||
| + | commit you changes to that branch. when you're finished you can bind
| ||
| + | that branch to any branch you want and push/commit the changes! instead
| ||
| + | of directly committing your changes.</p><h5>Mercurial</h5><h3>GUI</h3><p>With lots of tools available out there , having a good
| ||
| + | GUI is getting more critical everyday and i think the main reason is
| ||
| + | because it decrease the learning curve dramatically.</p><h4>Bazaar</h4><h3>Integration </h3><p>Software development without using third-party applications and IDEs is a waste of time! So we should able to use our favoride VCS via our favorite IDE!</p><h4>Bazaar </h4><p>Has a plugin for Eclipse, the installation process was not as smooth
| ||
as subeclipse but i can't say that it was difficult. i had to manually
| as subeclipse but i can't say that it was difficult. i had to manually
| ||
add the bzr binary and plugin folders location and also configure few
| add the bzr binary and plugin folders location and also configure few
| ||
more information
| more information
| ||
here <a href="http://wiki.bazaar.canonical.com/IDEIntegration">IDEIntegration
| here <a href="http://wiki.bazaar.canonical.com/IDEIntegration">IDEIntegration
| ||
| - | - Bazaar Version Control</a></p><h3>Migration </h3><p>Obviously any DVCSs without proper migration utilities is useless for most projects, so lets see what each one has to offer.</p><h4>Bazaar </h4><p>To get started with bazaar as fast as you possible with subversion
| + | - Bazaar Version Control</a></p><h3>Roadmap</h3>
|
| - | background : <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>You might want to have look at [#1315]</p><p>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 difference between server and local bzr
| + | |
| - | version, however bazaar developers say that in 2.x serious and upwards it's no longer a issue. bazaar supports various different tree formats which can
| + | |
| - | causes lots of headaches. this command helped
| + | |
| - | https://sourceforge.net/apps/trac/sourceforge/ticket/517</p><h3>GUI</h3><p>With lots of tools available out there , having a good GUI is getting more critical everyday and i think the main reason is because it decrease the learning curve dramatically.</p><h4>Bazaar</h4>
| + | |
| - | <h3>Roadmap</h3>
| + | |
<p>All major DVCSs are under active development, which means that
| <p>All major DVCSs are under active development, which means that
| ||
their roadmap plays an important role in the decision.</p><h4>Bazaar</h4><p>Bazaar <a href="http://wiki.bazaar.canonical.com/Roadmap">roadmap</a> And also
| their roadmap plays an important role in the decision.</p><h4>Bazaar</h4><p>Bazaar <a href="http://wiki.bazaar.canonical.com/Roadmap">roadmap</a> And also
| ||
</p><h3>Plugins</h3><h4>Bazaar</h4><p>Bazaar like the other three supports plugins , in my experience <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 then extracting it
| </p><h3>Plugins</h3><h4>Bazaar</h4><p>Bazaar like the other three supports plugins , in my experience <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 then extracting it
| ||
into the plugins folder.
| into the plugins folder.
| ||
| - | That's it. it's even easier even windows.</p><h3>Performance</h3><h4>Bazaar</h4><h4>Git</h4><h4>Mercurial</h4><h3>Features</h3><p>All of the major DVCSs have the important features so i'll skip the feature that are available on all of them. Also this part is mostly a respond to <a href="http://whygitisbetterthanx.com">whygitisbetterthanx.com</a> because it seems that the information they're providing is not accurate.</p><h4>Cheap local branching</h4><h5>Bazaar</h5><p>As far as i know, Bazaar currently does support this
| + | That's it. it's even easier even windows.</p><h4>Notes</h4><p>There is a <a href="http://whygitisbetterthanx.com">nice website</a> for comparing git vs others, very useful. Funny thing is that HG users <a href="http://whyhgisbetterthanx.com">did the same!</a> but made their point quite clear! Also Git users made another one <a href="http://whybzrisbetterthanx.github.com/">for Bazaar!</a></p><p>There
|
| - | feature, but developers are working on it, i'll write more when i
| + | |
| - | gathered more accurate information.</p><h5>Git</h5><p>According to <a href="http://whygitisbetterthanx.com">whygitisbetterthanx.com</a> git has this feature in a very good way!</p><h5>Mercurial</h5><h4>Staging</h4><h5>Git</h5><p>According to whygitisbetterthanx.com git has this feature in a very good way!</p><h5>Bazaar</h5><p>Bazaar has this feature but not out of the box, they only thing you need to do is creating another branch and bind you current branch to it, then commit you changes to that branch. when you're finished you can bind that branch to any branch you want and push/commit the changes! instead of directly committing your changes.</p><h5>Mercurial</h5>
| + | |
| - | + | ||
| - | + | ||
| - | <h4>Notes</h4><p>There is a <a href="http://whygitisbetterthanx.com">nice website</a> for comparing git vs others, very useful. Funny thing is that HG users <a href="http://whyhgisbetterthanx.com">did the same!</a> but made their point quite clear! Also Git users made another one <a href="http://whybzrisbetterthanx.github.com/">for Bazaar!</a></p><p>There
| + | |
is also another website for comparing Bazaar and Git , they approach is
| is also another website for comparing Bazaar and Git , they approach 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><h4>Conclusions</h4><p>In this part each Version Control User writes about the main reasons why he ignore a particular DVCS or choose it.</p><h4>Bazaar</h4><p>I
| + | http://www.bzrvsgit.com/</p><h4>Conclusions</h4><p>In this part you can read the main reasons that people use particular </p><h4>Bazaar</h4><p>I
|
decided to start with Bazaar for several reasons</p><ul><li>It's written with python and for this reason it's
| decided to start with Bazaar for several reasons</p><ul><li>It's written with python and for this reason it's
| ||
much easier to extend and develop than C or C++.</li><li>It's a
| much easier to extend and develop than C or C++.</li><li>It's a
| ||
| - | multi purpose VCS covering several different Use Cases</li><li>It's plugin
| + | multi purpose VCS covering several different Use Cases (Workflows)</li><li>It's plugin
|
| - | system is quite easy to use (With no compiling or building process)</li><li>It's
| + | system is quite easy to use (With no compiling or building process)</li><li>It
|
comes with several great cross platform GUI utilities</li></ul><h3>News</h3><p>More and more software and developers are migrating to DVCSs, here you can read their favorite DVCSs </p><ul><li>2010-2-x : Drupal.org's infrastructure team has finally decided to use Git instead
| comes with several great cross platform GUI utilities</li></ul><h3>News</h3><p>More and more software and developers are migrating to DVCSs, here you can read their favorite DVCSs </p><ul><li>2010-2-x : Drupal.org's infrastructure team has finally decided to use Git instead
| ||
of Bazaar. I read most of the comments there which was extremely useful. But the reason they chosed Git was mostly because of the number of people willing to help. So i can say that Git community is very active. <a href="http://groups.drupal.org/node/48818">Evaluation discussion for
| of Bazaar. I read most of the comments there which was extremely useful. But the reason they chosed Git was mostly because of the number of people willing to help. So i can say that Git community is very active. <a href="http://groups.drupal.org/node/48818">Evaluation discussion for
| ||
Comparing Version Control Systems : Bazaar vs Mercurial (hg) vs Git
Why another comparison review!!?
Perhaps becuase many of other reviews are either outdated or unfair.
What's the difference between this and the others!!?
There are three differences.
- Most of the current reviews are written by a user of one of this softwares so the author can't be fair since he has much less experience with the others, in this article however i only write about Bazaar and let the users of other DVCSs to participate and write about their favorite software.
- There are many resources available regarding to this topic and each one has pros and cons. But the main issue i have with them is that most of them are outdated because all this DVCSs are under very active development. An issue that exists now, might become a feature! few months later. So i started this article as a research project which means that just like DVCSs it's also under active development :). Anyway if you like to read resources on other sites i suggest you to check the date they've been published before relying on them. (You can subscribe to this page's RSS/Feed in order to be notices of the new updates.)
- This article is practical because it includes personal experiences from users of all these DVCSs, and challenges they've faced using them ,not only what's been written in Documentations
It's about the sixth years since my first commit using Subversion, Moving from CVS to Subversion was really amazing, Subversion was superior in many ways and it served me well. But the age of centralized version control systems is over, we need much more powerful VCSs to deal with huge projects. Now days we should to be able to work with anyone, on anything, anywhere , at anytime, and also keep track of all this activities.
The age of single all-in-one solution is over in many fields including Version Control Systems, each solution has its own pros and cons and Same applies to VCSs. So in this article i'm going to compare three major DVCSs available.
My main focus on this article is Bazaar since i've decided to start (You can read why i decided to start with Bazaar at the Conclusions section) but i asked my friend Antoni who is a Mercurial(HG) user to help with all sections related to HG. Kudus to him. Currently i use whygitisbetterthanx.com site for Git but i'm also looking for Git user to share his personal experience by using Git with me. So if you're Git user i'll be more than happy to hear your opinion :)
Installation
Bazaar
Karmic :
Add this repository
for Bazaar gui
(known as bazaar explorer)
ppa:bzr-explorer-dev/ppa
If you're not using Ubuntu Karmic more information here : https://launchpad.net/~bzr-explorer-dev/+archive/ppa
sudo apt-get install bzr bzr-explorer bzr-svn
Migration
Obviously any DVCSs without proper migration utilities is useless for most projects, so lets see what each one has to offer.
Bazaar
To get started with bazaar as fast as you possible with subversion background : BzrForSVNUsers - Bazaar Version Control and Bazaar for Subversion users — Bazaar Migration Docs
You might want to have look at Migrating from Subversion to Bazaar (Including special guide for Sourceforge projects)
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 difference between server and local bzr version, however bazaar developers say that in 2.x serious and upwards it's no longer a issue. bazaar supports various different tree formats which can causes lots of headaches. this command helped https://sourceforge.net/apps/trac/sourceforge/ticket/517
Performance
Bazaar
Git
Mercurial
Features
All of the major DVCSs have the important features so i'll skip the feature that are available on all of them. Also this part is mostly a respond to whygitisbetterthanx.com because it seems that the information they're providing is not accurate.
Cheap local branching
Bazaar
As far as i know, Bazaar currently does support this feature, but developers are working on it, i'll write more when i gathered more accurate information.
Git
According to whygitisbetterthanx.com git has this feature in a very good way!
Mercurial
Staging
Git
According to whygitisbetterthanx.com git has this feature in a very good way!
Bazaar
Bazaar has this feature but not out of the box, they only thing you need to do is creating another branch and bind you current branch to it, then commit you changes to that branch. when you're finished you can bind that branch to any branch you want and push/commit the changes! instead of directly committing your changes.
Mercurial
GUI
With lots of tools available out there , having a good GUI is getting more critical everyday and i think the main reason is because it decrease the learning curve dramatically.
Bazaar
Integration
Software development without using third-party applications and IDEs is a waste of time! So we should able to use our favoride VCS via our favorite IDE!
Bazaar
Has a plugin for Eclipse, the installation process was not as smooth as subeclipse but i can't say that it was difficult. i had to manually add the bzr binary and plugin folders location and also configure 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 subeclipse.
Mercurial
Mercurial is much better integrated with other applications, for example currently netbeans does not support Bezaar. more information here IDEIntegration - Bazaar Version Control
Roadmap
All major DVCSs are under active development, which means that their roadmap plays an important role in the decision.
Bazaar
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
Plugins
Bazaar
Bazaar like the other three supports plugins , in my experience installing Bazaar plugins is as easy as downloading and then extracting it into the plugins folder. That's it. it's even easier even windows.
Notes
There is a nice website for comparing git vs others, very useful. Funny thing is that HG users did the same! but made their point quite clear! Also Git users made another one for Bazaar!
There is also another website for comparing Bazaar and Git , they approach is interesting and it's based on personal experience using Tweeter! http://www.bzrvsgit.com/
Conclusions
In this part you can read the main reasons that people use particular
Bazaar
I decided to start with Bazaar for several reasons
- It's written with python and for this reason it's much easier to extend and develop than C or C++.
- It's a multi purpose VCS covering several different Use Cases (Workflows)
- It's plugin system is quite easy to use (With no compiling or building process)
- It comes with several great cross platform GUI utilities
News
More and more software and developers are migrating to DVCSs, here you can read their favorite DVCSs
- 2010-2-x : Drupal.org's infrastructure team has finally decided to use Git instead of Bazaar. I read most of the comments there which was extremely useful. But the reason they chosed Git was mostly because of the number of people willing to help. So i can say that Git community is very active. Evaluation discussion for how to move Drupal.org off of CVS | groups.drupal.org
Resources
- BzrExplorer - Bazaar Version Control
- Workflows — Bazaar v2.1.1 documentation
- Bazaar Explorer PPA : “Bazaar Explorer Developers” team
- Publishing a branch — Bazaar v2.0.5 documentation
- Bazaar Explorer PPA : “Bazaar Explorer Developers” team
- testrunner - Run a command before allowing a commit — Bazaar v2.0.x documentation
- xmloutput - XML interface for external tool integration — Bazaar v2.0.x documentation
- Bazaar Explorer in Launchpad
- SvnDump 0.5.0
- Repository Maintenance
- Dump and load foreign subversion repositories using svnadmin and svndumpfilter, Nuxeo Developers Blog
- 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


