Bazaar

Bazaar

 




Wiki Tools

  • Find Page
  • Recent Changes
  • Page History
  • Attachments

Differences between revisions 44 and 99 (spanning 55 versions)
Revision 44 as of 2006-03-17 15:10:12
Size: 5235
Editor: AaronBentley
Comment: Please be specific, so we can check what you're saying.
Revision 99 as of 2007-02-08 08:55:28
Size: 324
Editor: MartinPool
Comment:
Deletions are marked like this. Additions are marked like this.
Line 1: Line 1:
/!\ This chart is a rough draft /!\ There was a comparison of version control systems here, but it was of limited use and has been removed. See instead the ["Bzr"] feature list.
Line 3: Line 3:
This page is a user-oriented comparison of different revision control system. For a more technical comparison, see ["RCSChoices"]. See also ["SCMComparisons"] (note: this may be better to move the content of this page here) for a brief presentation of each system and how they compare to Bazaar-NG in particular. The determination on this chart is based upon the core installation and features that are already working in devel.

= Overview =

||RCS Name ||Bazaar-NG||Arch||CVS ||Subversion||Git ||Mercurial||Monotone||Darcs||
||Decentralized ||Yes ||Yes ||No ||No ||Yes ||Yes ||Yes ||Yes ||
||Disconnected Ops ||Yes ||Yes ||No ||No ||Yes ||Yes ||Yes ||Yes ||
||Simple Namespace ||Yes ||No ||No ||Yes ||No ||Yes ||No ||Yes ||
||Supports Renames ||Yes ||Yes ||No ||Yes ||Somewhat ||Yes ||Yes ||Yes ||
||Needs Repository ||No ||Yes ||Yes ||Yes ||No ||No ||No || ||
||Checkouts ||Yes ||No ||Yes ||Yes || ||No || ||No ||
||Atomic Commit ||Yes ||Yes ||No ||Yes || ||Yes ||Yes || ||
||[:Merge:Smart Merge] ||Yes ||Yes ||No ||No ||Yes ||Yes ||Yes ||Yes ||
||[:CherryPick:Cherrypicks] ||Yes ||Yes ||Yes ||Yes || ||Yes ||Yes ||Yes ||
||[:BzrPlugins:Plugins] ||Yes ||No ||No || || ||Yes || || ||
||Has Special Server ||No ||No ||Yes ||Yes || ||Optional || || ||
||Req. Dedicated Server ||No ||No ||Remote||Remote ||No ||No ||No ||Yes ||
||Good Windows support ||Yes ||No ||Yes ||Yes ||No ||Yes || || ||
||Fast Local Performance || ||No ||Yes ||Yes ||Yes ||Yes ||Yes ||No ||
||Fast Network Performance ||Soon ||No ||Yes ||Yes ||Yes ||Yes ||Yes ||No ||

= Details about each feature =

== Decentralized ==
Whether the tool is designed to allow [:Branch:branches] of the same project to be in different remote [:Repository:repositories].

== Simple Namespace ==
The namespace is the way the RCS communicates with the user the various resources for the RCS such as the names for branches and the names for [:Revision:revisions] that are [:Merge:merge]. For example: requiring the user to refer to revisions with base-16 numbers is not considered "simple" in this document.

== Needs Repository ==
Some revision control systems require that branches be aggregated into [:Repository:repositories].

== Supports Renames ==
If a user can rename a file in the RCS without loosing the RCS history for a file, then renames are considered supported. If the operation resultes in a delete/add (aka "DA pair"), then renames are not considered supported.

== Has Checkouts ==
A ["Checkout"] is a [:WorkingTree:working tree] that points elsewhere for its RCS data.

== Atomic Commit ==
Does the RCS track which files were associated with which [:Commit:commit].

== Smart Merge ==
Whether the tool is able to know which revisions have to be merged (recording [:Merge:merge] history is a necessary condition for this).

== Cherrypicks ==
Whether the tool allows CherryPick (fine-grained selection of revisions to be merged).

== Plugins ==
Whether the tool is extensible with plugins. Our plugins are on the BzrPlugins page.

== Can use standard fileserver ==
Whether the tool can work with a standard file server (HTTP for read-only operations, ftp/sftp/webdav or others for write operations). This allows you to host a repository on almost any internet service provider without dedicated support.

== Work on partial checkout ==
Whether a user can checkout only a subdirectory of a project and work on it.

== Windows support ==
Whether the Microsoft Windows platform has good native support. Cygwin support is not sufficient.

== Fast Local Performance ==
Whether local operations (commit, "which files have I changed?", diff, switch to different revision, merge) are fast.

== Fast Network Performance ==
Whether network operations (pull, push, clone) are fast.

= Details of particular VCSes =
In some cases, it is hard to answer 'yes' or 'no' to a particular question.

== Bazaar-NG ==
The current implementation of Bazaar-NG has very poor network performance for propagating changes. This is expected to become about 30 times faster in the near future.

== Mercurial ==
Mercurial supports file renames, but does not yet propagate content changes across renames. It doesn't (yet) track directory renames.

== Git ==
Git does not store renames. However, features like merge can make pretty good guesses about renames.
Git does not work on native Windows, but does work (slowly) on Cygwin.

== Subversion ==
Subversion does not support decentralized operation, but svk is a decentralized VCS implemented on top of svn.
See also [http://en.wikipedia.org/wiki/Comparison_of_revision_control_software Comparison of Revision Control Software] on wikipedia for another relatively complete comparison.

There was a comparison of version control systems here, but it was of limited use and has been removed. See instead the ["Bzr"] feature list.

See also [http://en.wikipedia.org/wiki/Comparison_of_revision_control_software Comparison of Revision Control Software] on wikipedia for another relatively complete comparison.