tests/test-rollback
author Nicolas Dumazet <nicdumz.commits@gmail.com>
Sat, 03 Jul 2010 18:11:15 +0900
changeset 11608 183e63112698
parent 10775 c52057614c72
child 12156 4c94b6d0fb1c
permissions -rwxr-xr-x
log: remove increasing windows usage in fastpath The purpose of increasing windows is to allow backwards iteration on the filelog at a reasonable cost. But is it needed? - if follow is False, we have no reason to iterate backwards. We basically just want to walk the complete filelog and yield all revisions within the revision range. We can do this forward or backwards, as it only reads the index. - when follow is True, we need to examine the contents of the filelog, and to do this efficiently we need to read the filelog forward. And on the other hand, to track ancestors and copies, we need to process revisions backwards. But is it necessary to use increasing windows for this? We can iterate over the complete filelog forward, stack the revisions, and read the reversed(pile), it does the same thing with a more readable code.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
544
3d4d5f2aba9a Remove bashisms and use /bin/sh instead of /bin/bash.
Thomas Arendsen Hein <thomas@intevation.de>
parents: 350
diff changeset
     1
#!/bin/sh
336
aa6cbde09f72 Add some more tests
mpm@selenic.com
parents:
diff changeset
     2
aa6cbde09f72 Add some more tests
mpm@selenic.com
parents:
diff changeset
     3
mkdir t
aa6cbde09f72 Add some more tests
mpm@selenic.com
parents:
diff changeset
     4
cd t
aa6cbde09f72 Add some more tests
mpm@selenic.com
parents:
diff changeset
     5
hg init
aa6cbde09f72 Add some more tests
mpm@selenic.com
parents:
diff changeset
     6
echo a > a
aa6cbde09f72 Add some more tests
mpm@selenic.com
parents:
diff changeset
     7
hg add a
1933
7544700fd931 Use 'hg ci -d "1000000 0"' in tests to circumvent problem with leading zero.
Thomas Arendsen Hein <thomas@intevation.de>
parents: 814
diff changeset
     8
hg commit -m "test" -d "1000000 0"
336
aa6cbde09f72 Add some more tests
mpm@selenic.com
parents:
diff changeset
     9
hg verify
aa6cbde09f72 Add some more tests
mpm@selenic.com
parents:
diff changeset
    10
hg parents
aa6cbde09f72 Add some more tests
mpm@selenic.com
parents:
diff changeset
    11
hg status
2227
4f072bb06e89 deprecate undo command, replace with rollback command.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents: 1933
diff changeset
    12
hg rollback
336
aa6cbde09f72 Add some more tests
mpm@selenic.com
parents:
diff changeset
    13
hg verify
aa6cbde09f72 Add some more tests
mpm@selenic.com
parents:
diff changeset
    14
hg parents
aa6cbde09f72 Add some more tests
mpm@selenic.com
parents:
diff changeset
    15
hg status
5814
dd5a501cb97f restore branch after rollback (issue 902)
Alexandre Vassalotti <mercurial-bugs@selenic.com>
parents: 2227
diff changeset
    16
6058
88b4d726332a Do not abort rollback if undo.branch isn't available, but warn.
Thomas Arendsen Hein <thomas@intevation.de>
parents: 5814
diff changeset
    17
echo % Test issue 902
9934
720f70b720d3 commit: save commit message so it's not destroyed by rollback.
Greg Ward <greg-hg@gerg.ca>
parents: 6058
diff changeset
    18
hg commit -m "test2"
5814
dd5a501cb97f restore branch after rollback (issue 902)
Alexandre Vassalotti <mercurial-bugs@selenic.com>
parents: 2227
diff changeset
    19
hg branch test
dd5a501cb97f restore branch after rollback (issue 902)
Alexandre Vassalotti <mercurial-bugs@selenic.com>
parents: 2227
diff changeset
    20
hg rollback
dd5a501cb97f restore branch after rollback (issue 902)
Alexandre Vassalotti <mercurial-bugs@selenic.com>
parents: 2227
diff changeset
    21
hg branch
6058
88b4d726332a Do not abort rollback if undo.branch isn't available, but warn.
Thomas Arendsen Hein <thomas@intevation.de>
parents: 5814
diff changeset
    22
9934
720f70b720d3 commit: save commit message so it's not destroyed by rollback.
Greg Ward <greg-hg@gerg.ca>
parents: 6058
diff changeset
    23
echo '% Test issue 1635 (commit message saved)'
720f70b720d3 commit: save commit message so it's not destroyed by rollback.
Greg Ward <greg-hg@gerg.ca>
parents: 6058
diff changeset
    24
echo '.hg/last-message.txt:'
9949
bc3f762af82e commit: write last-message.txt with no content modifications.
Greg Ward <greg-hg@gerg.ca>
parents: 9935
diff changeset
    25
cat .hg/last-message.txt ; echo
9934
720f70b720d3 commit: save commit message so it's not destroyed by rollback.
Greg Ward <greg-hg@gerg.ca>
parents: 6058
diff changeset
    26
6058
88b4d726332a Do not abort rollback if undo.branch isn't available, but warn.
Thomas Arendsen Hein <thomas@intevation.de>
parents: 5814
diff changeset
    27
echo % Test rollback of hg before issue 902 was fixed
9934
720f70b720d3 commit: save commit message so it's not destroyed by rollback.
Greg Ward <greg-hg@gerg.ca>
parents: 6058
diff changeset
    28
hg commit -m "test3"
6058
88b4d726332a Do not abort rollback if undo.branch isn't available, but warn.
Thomas Arendsen Hein <thomas@intevation.de>
parents: 5814
diff changeset
    29
hg branch test
88b4d726332a Do not abort rollback if undo.branch isn't available, but warn.
Thomas Arendsen Hein <thomas@intevation.de>
parents: 5814
diff changeset
    30
rm .hg/undo.branch
88b4d726332a Do not abort rollback if undo.branch isn't available, but warn.
Thomas Arendsen Hein <thomas@intevation.de>
parents: 5814
diff changeset
    31
hg rollback
88b4d726332a Do not abort rollback if undo.branch isn't available, but warn.
Thomas Arendsen Hein <thomas@intevation.de>
parents: 5814
diff changeset
    32
hg branch
9934
720f70b720d3 commit: save commit message so it's not destroyed by rollback.
Greg Ward <greg-hg@gerg.ca>
parents: 6058
diff changeset
    33
720f70b720d3 commit: save commit message so it's not destroyed by rollback.
Greg Ward <greg-hg@gerg.ca>
parents: 6058
diff changeset
    34
echo '% rollback by pretxncommit saves commit message (issue 1635)'
720f70b720d3 commit: save commit message so it's not destroyed by rollback.
Greg Ward <greg-hg@gerg.ca>
parents: 6058
diff changeset
    35
echo a >> a
10081
a5f3f9b1c42a test-rollback: Ignore hook exit code
Mads Kiilerich <mads@kiilerich.com>
parents: 9969
diff changeset
    36
hg --config hooks.pretxncommit=false commit -m"precious commit message" 2>&1 | sed 's,exited with status .*,exited ...,g'
9934
720f70b720d3 commit: save commit message so it's not destroyed by rollback.
Greg Ward <greg-hg@gerg.ca>
parents: 6058
diff changeset
    37
echo '.hg/last-message.txt:'
9949
bc3f762af82e commit: write last-message.txt with no content modifications.
Greg Ward <greg-hg@gerg.ca>
parents: 9935
diff changeset
    38
cat .hg/last-message.txt ; echo
9935
48b81d9bca8d commit: if relevant, tell user their commit message was saved.
Greg Ward <greg-hg@gerg.ca>
parents: 9934
diff changeset
    39
48b81d9bca8d commit: if relevant, tell user their commit message was saved.
Greg Ward <greg-hg@gerg.ca>
parents: 9934
diff changeset
    40
echo '% same thing, but run $EDITOR'
48b81d9bca8d commit: if relevant, tell user their commit message was saved.
Greg Ward <greg-hg@gerg.ca>
parents: 9934
diff changeset
    41
cat > $HGTMP/editor <<'__EOF__'
48b81d9bca8d commit: if relevant, tell user their commit message was saved.
Greg Ward <greg-hg@gerg.ca>
parents: 9934
diff changeset
    42
#!/bin/sh
48b81d9bca8d commit: if relevant, tell user their commit message was saved.
Greg Ward <greg-hg@gerg.ca>
parents: 9934
diff changeset
    43
echo "another precious commit message" > "$1"
48b81d9bca8d commit: if relevant, tell user their commit message was saved.
Greg Ward <greg-hg@gerg.ca>
parents: 9934
diff changeset
    44
__EOF__
10775
c52057614c72 Tests with spaces in paths
Mads Kiilerich <mads@kiilerich.com>
parents: 10081
diff changeset
    45
chmod +x "$HGTMP"/editor
c52057614c72 Tests with spaces in paths
Mads Kiilerich <mads@kiilerich.com>
parents: 10081
diff changeset
    46
HGEDITOR="'$HGTMP'"/editor hg --config hooks.pretxncommit=false commit 2>&1 | sed 's,exited with status .*,exited ...,g'
9935
48b81d9bca8d commit: if relevant, tell user their commit message was saved.
Greg Ward <greg-hg@gerg.ca>
parents: 9934
diff changeset
    47
echo '.hg/last-message.txt:'
48b81d9bca8d commit: if relevant, tell user their commit message was saved.
Greg Ward <greg-hg@gerg.ca>
parents: 9934
diff changeset
    48
cat .hg/last-message.txt