Bazaar

Bazaar

 




Wiki Tools

  • Find Page
  • Recent Changes
  • Page History
  • Attachments

Differences between revisions 1 and 38 (spanning 37 versions)
Revision 1 as of 2006-02-20 01:22:06
Size: 723
Comment: new comparison chart. Please help!
Revision 38 as of 2006-03-04 13:39:55
Size: 4539
Comment:
Deletions are marked like this. Additions are marked like this.
Line 3: Line 3:
||RCS Name ||Bazaar-NG||Arch||CVS||Subversion||Git||Hg || Monotone||
||Decentralized || Yes || No || No||Yes ||Yes||Yes|| Yes ||
||Simple/No Namespace||Yes ||Yes || No||No || ||No || No ||
||Supports Renames|| Yes ||Yes || No||Yes || ||No?|| ||
||Has Checkouts || Yes || No ||Yes||Yes || || || ||
||Has Snapshots || Yes ||Yes ||Yes||Yes || || || ||
||Supports Merge || Yes ||Yes || No||No ||No?|| ||Yes ||
||Cherrypicks || Yes ||Yes ||Yes||Yes || ||Yes|| ||
||Simple UI || Yes ||No ||No ||No ||No ||Yes||No ||
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 || ||Yes || ||No ||
||Atomic Commit ||Yes ||Yes ||No ||Yes || ||Yes ||Yes || ||
||[:Merge:Smart Merge] ||Yes ||Yes ||No ||No ||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 || || ||

= 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.

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

== Mercurial ==
Mercurial supports renames, but does not yet propagate content changes across 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.

This chart is a rough draft

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

Yes

No

Atomic Commit

Yes

Yes

No

Yes

Yes

Yes

[:Merge:Smart Merge]

Yes

Yes

No

No

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

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.

Details of particular VCSes

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

Mercurial

Mercurial supports renames, but does not yet propagate content changes across 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.