comparison.txt
author mpm@selenic.com
Fri, 20 May 2005 17:27:21 -0800
changeset 110 c37c7f784ee3
parent 58 2ab801e0ea9f
child 139 17e66e1a0382
permissions -rw-r--r--
Move hg from storing files in data with base64 encoding to full pathnames with .i and .d extensions. This means we naturally get good FS layout, and cp and tar fix things up nicely rather than pessimizing layout.

                    Mercurial      git                     BK (*)
storage             revlog delta   compressed revisions    SCCS weave
merge               file DAGs      changeset DAG           file DAGs?
consistency         SHA1           SHA1                    CRC
signable?           yes            yes                     no       

retrieve file tip   O(1)           O(1)                    O(revs)
add rev             O(1)           O(1)                    O(revs)
find prev file rev  O(1)           O(changesets)           O(revs)
annotate file       O(1)|O(revs)   O(changesets)           O(revs)
find file changeset O(1)           O(changesets)           ?

checkout            O(files)       O(files)                O(revs)?
commit              O(changes)     O(changes)              ?
                    6 patches/s    6 patches/s             slow
diff working dir    O(changes)     O(changes)              ?
                    < 1s           < 1s                    ?
tree diff revs      O(changes)     O(changes)              ?
                    < 1s           < 1s                    ?
local clone         O(files)       O(revisions)            O(files)
find remote csets   O(log new)     O(revisions)            ?
pull remote csets   O(patch)       O(modified files)       O(patch)
                    100 csets/s    8 csets/s               ?
repo growth         O(patch)       O(revisions)            O(patch)
 kernel history     250M?          3.5G?                   250M?
lines of code       2500           6500 (+ cogito)         ??

* I've never used BK so this is just guesses