annotate comparison.txt @ 820:89985a1b3427

Clean up walk and changes code to use normalised names properly. New function: commands.pathto returns the relative path from one path to another. For example, given foo/bar and baz/quux, it will return ../../baz/quux. This new function is used by the walk and status code to print relative paths correctly. New command: debugwalk exercises the walk code without doing anything more. hg.dirstate.walk now yields normalised names. For example, if you're in the baz directory and you ask it to walk ../foo/bar/.., it will yield names starting with foo/. As a result of this change, all of the other walk and changes methods in this module also return normalised names. The util.matcher function now normalises globs and path names, so that it will match normalised names properly. Finally, util.matcher uses the non-glob prefix of a glob to tell walk which directories to scan. Perviously, a glob like foo/* would scan everything, but only return matches for foo/*. Now, foo/* only scans under foo (using the globprefix function), which is much faster.
author Bryan O'Sullivan <bos@serpentine.com>
date Sun, 31 Jul 2005 17:42:46 -0800
parents 17e66e1a0382
children 2073e5a71008
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
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
2ab801e0ea9f A quick set of comparisons between hg, git, and bk
mpm@selenic.com
parents:
diff changeset
6 signable? yes yes no
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