tests/test-mq-qgoto
author David Greenaway <hg-dev@davidgreenaway.com>
Sat, 03 Apr 2010 11:58:16 +1100
changeset 11060 e6df01776e08
parent 7568 12df451ce205
permissions -rwxr-xr-x
findrenames: Optimise "addremove -s100" by matching files by their SHA1 hashes. We speed up 'findrenames' for the usecase when a user specifies they want a similarity of 100% by matching files by their exact SHA1 hash value. This reduces the number of comparisons required to find exact matches from O(n^2) to O(n). While it would be nice if we could just use mercurial's pre-calculated SHA1 hash for existing files, this hash includes the file's ancestor information making it unsuitable for our purposes. Instead, we calculate the hash of old content from scratch. The following benchmarks were taken on the current head of crew: addremove 100% similarity: rm -rf *; hg up -C; mv tests tests.new hg --time addremove -s100 --dry-run before: real 176.350 secs (user 128.890+0.000 sys 47.430+0.000) after: real 2.130 secs (user 1.890+0.000 sys 0.240+0.000) addremove 75% similarity: rm -rf *; hg up -C; mv tests tests.new; \ for i in tests.new/*; do echo x >> $i; done hg --time addremove -s75 --dry-run before: real 264.560 secs (user 215.130+0.000 sys 49.410+0.000) after: real 218.710 secs (user 172.790+0.000 sys 45.870+0.000)
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
4432
905397be7688 mq: add qgoto command.
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff changeset
     1
#!/bin/sh
905397be7688 mq: add qgoto command.
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff changeset
     2
905397be7688 mq: add qgoto command.
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff changeset
     3
echo "[extensions]" >> $HGRCPATH
905397be7688 mq: add qgoto command.
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff changeset
     4
echo "mq=" >> $HGRCPATH
905397be7688 mq: add qgoto command.
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff changeset
     5
905397be7688 mq: add qgoto command.
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff changeset
     6
hg init a
905397be7688 mq: add qgoto command.
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff changeset
     7
cd a
905397be7688 mq: add qgoto command.
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff changeset
     8
echo a > a
905397be7688 mq: add qgoto command.
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff changeset
     9
hg ci -Ama
905397be7688 mq: add qgoto command.
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff changeset
    10
905397be7688 mq: add qgoto command.
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff changeset
    11
hg qnew a.patch
905397be7688 mq: add qgoto command.
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff changeset
    12
echo a >> a
905397be7688 mq: add qgoto command.
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff changeset
    13
hg qrefresh
905397be7688 mq: add qgoto command.
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff changeset
    14
905397be7688 mq: add qgoto command.
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff changeset
    15
hg qnew b.patch
905397be7688 mq: add qgoto command.
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff changeset
    16
echo b > b
905397be7688 mq: add qgoto command.
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff changeset
    17
hg add b
905397be7688 mq: add qgoto command.
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff changeset
    18
hg qrefresh
905397be7688 mq: add qgoto command.
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff changeset
    19
905397be7688 mq: add qgoto command.
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff changeset
    20
hg qnew c.patch
905397be7688 mq: add qgoto command.
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff changeset
    21
echo c > c
905397be7688 mq: add qgoto command.
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff changeset
    22
hg add c
905397be7688 mq: add qgoto command.
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff changeset
    23
hg qrefresh
905397be7688 mq: add qgoto command.
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff changeset
    24
905397be7688 mq: add qgoto command.
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff changeset
    25
hg qgoto a.patch
905397be7688 mq: add qgoto command.
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff changeset
    26
hg qgoto c.patch
905397be7688 mq: add qgoto command.
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff changeset
    27
hg qgoto b.patch
7568
12df451ce205 mq: don't warn about ambiguous patch name when using patch index (issue1439)
Jason Orendorff <jorendorff@mozilla.com>
parents: 4432
diff changeset
    28
12df451ce205 mq: don't warn about ambiguous patch name when using patch index (issue1439)
Jason Orendorff <jorendorff@mozilla.com>
parents: 4432
diff changeset
    29
echo
12df451ce205 mq: don't warn about ambiguous patch name when using patch index (issue1439)
Jason Orendorff <jorendorff@mozilla.com>
parents: 4432
diff changeset
    30
echo % Using index
12df451ce205 mq: don't warn about ambiguous patch name when using patch index (issue1439)
Jason Orendorff <jorendorff@mozilla.com>
parents: 4432
diff changeset
    31
hg qgoto 0
12df451ce205 mq: don't warn about ambiguous patch name when using patch index (issue1439)
Jason Orendorff <jorendorff@mozilla.com>
parents: 4432
diff changeset
    32
hg qgoto 2
12df451ce205 mq: don't warn about ambiguous patch name when using patch index (issue1439)
Jason Orendorff <jorendorff@mozilla.com>
parents: 4432
diff changeset
    33
12df451ce205 mq: don't warn about ambiguous patch name when using patch index (issue1439)
Jason Orendorff <jorendorff@mozilla.com>
parents: 4432
diff changeset
    34
echo
12df451ce205 mq: don't warn about ambiguous patch name when using patch index (issue1439)
Jason Orendorff <jorendorff@mozilla.com>
parents: 4432
diff changeset
    35
echo % No warnings when using index
12df451ce205 mq: don't warn about ambiguous patch name when using patch index (issue1439)
Jason Orendorff <jorendorff@mozilla.com>
parents: 4432
diff changeset
    36
hg qnew bug314159
12df451ce205 mq: don't warn about ambiguous patch name when using patch index (issue1439)
Jason Orendorff <jorendorff@mozilla.com>
parents: 4432
diff changeset
    37
echo d >> c
12df451ce205 mq: don't warn about ambiguous patch name when using patch index (issue1439)
Jason Orendorff <jorendorff@mozilla.com>
parents: 4432
diff changeset
    38
hg qrefresh
12df451ce205 mq: don't warn about ambiguous patch name when using patch index (issue1439)
Jason Orendorff <jorendorff@mozilla.com>
parents: 4432
diff changeset
    39
hg qnew bug141421
12df451ce205 mq: don't warn about ambiguous patch name when using patch index (issue1439)
Jason Orendorff <jorendorff@mozilla.com>
parents: 4432
diff changeset
    40
echo e >> c
12df451ce205 mq: don't warn about ambiguous patch name when using patch index (issue1439)
Jason Orendorff <jorendorff@mozilla.com>
parents: 4432
diff changeset
    41
hg qrefresh
12df451ce205 mq: don't warn about ambiguous patch name when using patch index (issue1439)
Jason Orendorff <jorendorff@mozilla.com>
parents: 4432
diff changeset
    42
hg qgoto 1
12df451ce205 mq: don't warn about ambiguous patch name when using patch index (issue1439)
Jason Orendorff <jorendorff@mozilla.com>
parents: 4432
diff changeset
    43
hg qgoto 3
12df451ce205 mq: don't warn about ambiguous patch name when using patch index (issue1439)
Jason Orendorff <jorendorff@mozilla.com>
parents: 4432
diff changeset
    44
12df451ce205 mq: don't warn about ambiguous patch name when using patch index (issue1439)
Jason Orendorff <jorendorff@mozilla.com>
parents: 4432
diff changeset
    45
echo
12df451ce205 mq: don't warn about ambiguous patch name when using patch index (issue1439)
Jason Orendorff <jorendorff@mozilla.com>
parents: 4432
diff changeset
    46
echo % Detect ambiguous non-index
12df451ce205 mq: don't warn about ambiguous patch name when using patch index (issue1439)
Jason Orendorff <jorendorff@mozilla.com>
parents: 4432
diff changeset
    47
hg qgoto 14
12df451ce205 mq: don't warn about ambiguous patch name when using patch index (issue1439)
Jason Orendorff <jorendorff@mozilla.com>
parents: 4432
diff changeset
    48
12df451ce205 mq: don't warn about ambiguous patch name when using patch index (issue1439)
Jason Orendorff <jorendorff@mozilla.com>
parents: 4432
diff changeset
    49
exit 0