Bazaar

Bazaar

 




Wiki Tools

  • Find Page
  • Recent Changes
  • Page History
  • Attachments

Differences between revisions 18 and 19
Revision 18 as of 2006-02-20 13:03:26
Size: 2713
Editor: MatthieuMoy
Comment: a note on git and renames.
Revision 19 as of 2006-02-20 13:15:39
Size: 3050
Editor: MatthieuMoy
Comment: Note about svk.
Deletions are marked like this. Additions are marked like this.
Line 6: Line 6:
||Decentralized || Yes ||Yes || No||No        ||Yes ||Yes || Yes ||Yes || ||Decentralized || Yes ||Yes || No||No[#3 (3)]||Yes ||Yes || Yes ||Yes ||
Line 59: Line 59:
[[Anchor(2)]] 2. Git has a very particular management of renames. It does not track renames at commit time at all. However, it "guesses" them at merge time. Since it uses hashes, it can immediately see renames without modifications, and otherwise, it has to use a heuristic to find the file with the closest content. Linus claims that this is the best model, while other find it completely broken. See for example [http://morel.lionel.free.fr/atom.xml this post].
[[Anchor(2)]] 2. Git has a very particular management of renames. It does not track renames at commit time at all. However, it "guesses" them at merge time. Since it uses hashes, it can immediately see renames without modifications, and otherwise, it has to use a heuristic to find the file with the closest content. Linus claims that this is the best model, while other find it completely broken. See for example [http://www.mail-archive.com/git@vger.kernel.org/msg03711.html this post].

[[Anchor(3)]] 3. Subversion is surely not a decentralized revision control system (see for e
xample [http://subversion.tigris.org/subversion-linus.html this page] if you're not convinced). However, [http://svk.elixus.org/ svk] is built on top of subversion and allows decentralized revision control systems.

This chart is a rough draft

Overview

RCS Name

Bazaar-NG

Arch

CVS

Subversion

Git

Hg

Monotone

Darcs

Decentralized

Yes

Yes

No

No[#3 (3)]

Yes

Yes

Yes

Yes

Simple/No Namespace

Yes

No

No

Yes

No

No

Yes

Optional Repository

None

Req

Req

Req

Supports Renames

Yes

Yes

No

Yes

Yes[#2 (2)]

No[#1 (1)]

Yes

Yes

Has Checkouts

Yes

Yes

Yes

Yes

No

Has Revisions

Yes

Yes

No

Yes

Smart Merge

Yes

Yes

No

No

No?

Yes

Yes

Cherrypicks

Yes

Yes

Yes

Yes

Yes

Yes

Plugins

Yes

No

No

(note: it would be interesting to have a small benchmark too, like "time to run XXX diff/import/commit in the linux kernel",)

Details about each feature

Decentralized

Whether the tool is designed to allow branches of the same project to be in different remote repositories.

Simple/No Namespace

The namespace is the way a revision control system identifies a revision uniquely. It can be user-visible (GNU Arch), or tool internal (bzr, git, ...).

Optional Repository

?

Supports Renames

Whether the tool supports file renaming and merging changes to a renamed file.

Has Checkouts

A [Checkout checkout] is a working tree with a relatively small amount of metadata.

Has Revisions

?

Smart Merge

Whether the tool is able to know which revisions have to be merged (recording merge history is a necessary condition for this).

Cherrypicks

Whether the tool records Cherrypick history.

Plugins

Whether the tool is extensible with plugins.

Footnotes

Anchor(1) 1. Support for renames in hg is being implemented. Unlike bzr, it uses rename history instead of unique file ID.

Anchor(2) 2. Git has a very particular management of renames. It does not track renames at commit time at all. However, it "guesses" them at merge time. Since it uses hashes, it can immediately see renames without modifications, and otherwise, it has to use a heuristic to find the file with the closest content. Linus claims that this is the best model, while other find it completely broken. See for example [http://www.mail-archive.com/git@vger.kernel.org/msg03711.html this post].

Anchor(3) 3. Subversion is surely not a decentralized revision control system (see for example [http://subversion.tigris.org/subversion-linus.html this page] if you're not convinced). However, [http://svk.elixus.org/ svk] is built on top of subversion and allows decentralized revision control systems.