comparison.txt
author Benoit Boissinot <benoit.boissinot@ens-lyon.org>
Tue, 27 Dec 2005 13:09:49 -0600
changeset 1598 14d1f1868bf6
parent 1308 2073e5a71008
permissions -rw-r--r--
cleanup of revlog.group when repository is local revlog.group cached every chunk from the revlog, the behaviour was needed to minimize the roundtrip with old-http. We now cache the revlog data ~4MB at a time. The memory used server side when pulling goes down to 35Mo maximum whereas without the patch more than 160Mo was used when cloning the linux kernel repository. The time used by cloning is higher mainly because of the check in revlog.revision. before 110.25user 20.90system 2:52.00elapsed 76%CPU (0avgtext+0avgdata 0maxresident)k 0inputs+0outputs (0major+708707minor)pagefaults 0swaps after 117.56user 18.86system 2:50.43elapsed 80%CPU (0avgtext+0avgdata 0maxresident)k 0inputs+0outputs (0major+748366minor)pagefaults 0swaps
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
58
2ab801e0ea9f A quick set of comparisons between hg, git, and bk
mpm@selenic.com
parents:
diff changeset
     1
                    Mercurial      git                     BK (*)
2ab801e0ea9f A quick set of comparisons between hg, git, and bk
mpm@selenic.com
parents:
diff changeset
     2
storage             revlog delta   compressed revisions    SCCS weave
139
17e66e1a0382 Minor updates to comparison
mpm@selenic.com
parents: 58
diff changeset
     3
storage naming      by filename    by revision hash        by filename
58
2ab801e0ea9f A quick set of comparisons between hg, git, and bk
mpm@selenic.com
parents:
diff changeset
     4
merge               file DAGs      changeset DAG           file DAGs?
2ab801e0ea9f A quick set of comparisons between hg, git, and bk
mpm@selenic.com
parents:
diff changeset
     5
consistency         SHA1           SHA1                    CRC
1308
2073e5a71008 Cleanup of tabs and trailing spaces.
Thomas Arendsen Hein <thomas@intevation.de>
parents: 139
diff changeset
     6
signable?           yes            yes                     no
58
2ab801e0ea9f A quick set of comparisons between hg, git, and bk
mpm@selenic.com
parents:
diff changeset
     7
2ab801e0ea9f A quick set of comparisons between hg, git, and bk
mpm@selenic.com
parents:
diff changeset
     8
retrieve file tip   O(1)           O(1)                    O(revs)
2ab801e0ea9f A quick set of comparisons between hg, git, and bk
mpm@selenic.com
parents:
diff changeset
     9
add rev             O(1)           O(1)                    O(revs)
2ab801e0ea9f A quick set of comparisons between hg, git, and bk
mpm@selenic.com
parents:
diff changeset
    10
find prev file rev  O(1)           O(changesets)           O(revs)
139
17e66e1a0382 Minor updates to comparison
mpm@selenic.com
parents: 58
diff changeset
    11
annotate file       O(revs)        O(changesets)           O(revs)
58
2ab801e0ea9f A quick set of comparisons between hg, git, and bk
mpm@selenic.com
parents:
diff changeset
    12
find file changeset O(1)           O(changesets)           ?
2ab801e0ea9f A quick set of comparisons between hg, git, and bk
mpm@selenic.com
parents:
diff changeset
    13
2ab801e0ea9f A quick set of comparisons between hg, git, and bk
mpm@selenic.com
parents:
diff changeset
    14
checkout            O(files)       O(files)                O(revs)?
2ab801e0ea9f A quick set of comparisons between hg, git, and bk
mpm@selenic.com
parents:
diff changeset
    15
commit              O(changes)     O(changes)              ?
2ab801e0ea9f A quick set of comparisons between hg, git, and bk
mpm@selenic.com
parents:
diff changeset
    16
                    6 patches/s    6 patches/s             slow
2ab801e0ea9f A quick set of comparisons between hg, git, and bk
mpm@selenic.com
parents:
diff changeset
    17
diff working dir    O(changes)     O(changes)              ?
2ab801e0ea9f A quick set of comparisons between hg, git, and bk
mpm@selenic.com
parents:
diff changeset
    18
                    < 1s           < 1s                    ?
2ab801e0ea9f A quick set of comparisons between hg, git, and bk
mpm@selenic.com
parents:
diff changeset
    19
tree diff revs      O(changes)     O(changes)              ?
2ab801e0ea9f A quick set of comparisons between hg, git, and bk
mpm@selenic.com
parents:
diff changeset
    20
                    < 1s           < 1s                    ?
139
17e66e1a0382 Minor updates to comparison
mpm@selenic.com
parents: 58
diff changeset
    21
hardlink clone      O(files)       O(revisions)            O(files)
17e66e1a0382 Minor updates to comparison
mpm@selenic.com
parents: 58
diff changeset
    22
17e66e1a0382 Minor updates to comparison
mpm@selenic.com
parents: 58
diff changeset
    23
find remote csets   O(log new)     rsync: O(revisions)     ?
17e66e1a0382 Minor updates to comparison
mpm@selenic.com
parents: 58
diff changeset
    24
                                   git-http: O(changesets)
58
2ab801e0ea9f A quick set of comparisons between hg, git, and bk
mpm@selenic.com
parents:
diff changeset
    25
pull remote csets   O(patch)       O(modified files)       O(patch)
139
17e66e1a0382 Minor updates to comparison
mpm@selenic.com
parents: 58
diff changeset
    26
58
2ab801e0ea9f A quick set of comparisons between hg, git, and bk
mpm@selenic.com
parents:
diff changeset
    27
repo growth         O(patch)       O(revisions)            O(patch)
139
17e66e1a0382 Minor updates to comparison
mpm@selenic.com
parents: 58
diff changeset
    28
 kernel history     300M           3.5G?                   250M?
58
2ab801e0ea9f A quick set of comparisons between hg, git, and bk
mpm@selenic.com
parents:
diff changeset
    29
lines of code       2500           6500 (+ cogito)         ??
2ab801e0ea9f A quick set of comparisons between hg, git, and bk
mpm@selenic.com
parents:
diff changeset
    30
2ab801e0ea9f A quick set of comparisons between hg, git, and bk
mpm@selenic.com
parents:
diff changeset
    31
* I've never used BK so this is just guesses