tests/test-backout
author Alexis S. L. Carvalho <alexis@cecm.usp.br>
Thu, 04 Oct 2007 23:21:37 -0300
changeset 5377 756a43a30e34
parent 4726 f6e961c0155b
child 5568 de620356064f
permissions -rwxr-xr-x
convert: readd --filemap To handle merges correctly, this revision adds a filemap_source class that wraps a converter_source and does the work necessary to calculate the subgraph we're interested in. The wrapped converter_source must provide a new getchangedfiles method that, given a revision rev, and an index N, returns the list of files that are different in rev and its Nth parent. The implementation depends on the ability to skip some revisions and to change the parents field of the commit objects that we returned earlier. To make the conversion restartable, we assume the revisons in the revmapfile are topologically sorted.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
2158
ec96c4518236 add backout command.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
diff changeset
     1
#!/bin/sh
ec96c4518236 add backout command.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
diff changeset
     2
4365
46280c004f22 change tests to use simplemerge by default
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2614
diff changeset
     3
HGMERGE=true; export HGMERGE
46280c004f22 change tests to use simplemerge by default
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2614
diff changeset
     4
2158
ec96c4518236 add backout command.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
diff changeset
     5
hg init basic
ec96c4518236 add backout command.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
diff changeset
     6
cd basic
4726
f6e961c0155b Fix and test 'hg backout' without or with too many revisions.
Thomas Arendsen Hein <thomas@intevation.de>
parents: 4365
diff changeset
     7
f6e961c0155b Fix and test 'hg backout' without or with too many revisions.
Thomas Arendsen Hein <thomas@intevation.de>
parents: 4365
diff changeset
     8
echo '# should complain'
f6e961c0155b Fix and test 'hg backout' without or with too many revisions.
Thomas Arendsen Hein <thomas@intevation.de>
parents: 4365
diff changeset
     9
hg backout
f6e961c0155b Fix and test 'hg backout' without or with too many revisions.
Thomas Arendsen Hein <thomas@intevation.de>
parents: 4365
diff changeset
    10
hg backout -r 0 0
f6e961c0155b Fix and test 'hg backout' without or with too many revisions.
Thomas Arendsen Hein <thomas@intevation.de>
parents: 4365
diff changeset
    11
f6e961c0155b Fix and test 'hg backout' without or with too many revisions.
Thomas Arendsen Hein <thomas@intevation.de>
parents: 4365
diff changeset
    12
echo '# basic operation'
2158
ec96c4518236 add backout command.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
diff changeset
    13
echo a > a
ec96c4518236 add backout command.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
diff changeset
    14
hg commit -d '0 0' -A -m a
ec96c4518236 add backout command.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
diff changeset
    15
echo b >> a
ec96c4518236 add backout command.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
diff changeset
    16
hg commit -d '1 0' -m b
ec96c4518236 add backout command.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
diff changeset
    17
ec96c4518236 add backout command.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
diff changeset
    18
hg backout -d '2 0' tip
ec96c4518236 add backout command.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
diff changeset
    19
cat a
ec96c4518236 add backout command.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
diff changeset
    20
ec96c4518236 add backout command.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
diff changeset
    21
echo '# file that was removed is recreated'
ec96c4518236 add backout command.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
diff changeset
    22
cd ..
ec96c4518236 add backout command.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
diff changeset
    23
hg init remove
ec96c4518236 add backout command.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
diff changeset
    24
cd remove
ec96c4518236 add backout command.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
diff changeset
    25
ec96c4518236 add backout command.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
diff changeset
    26
echo content > a
ec96c4518236 add backout command.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
diff changeset
    27
hg commit -d '0 0' -A -m a
ec96c4518236 add backout command.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
diff changeset
    28
ec96c4518236 add backout command.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
diff changeset
    29
hg rm a
ec96c4518236 add backout command.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
diff changeset
    30
hg commit -d '1 0' -m b
ec96c4518236 add backout command.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
diff changeset
    31
ec96c4518236 add backout command.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
diff changeset
    32
hg backout -d '2 0' --merge tip
ec96c4518236 add backout command.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
diff changeset
    33
cat a
ec96c4518236 add backout command.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
diff changeset
    34
ec96c4518236 add backout command.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
diff changeset
    35
echo '# backout of backout is as if nothing happened'
ec96c4518236 add backout command.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
diff changeset
    36
ec96c4518236 add backout command.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
diff changeset
    37
hg backout -d '3 0' --merge tip
2186
1092533fd11c tests: fix compatibility on Solaris
TK Soh <teekaysoh@yahoo.com>
parents: 2158
diff changeset
    38
cat a 2>/dev/null || echo cat: a: No such file or directory
2158
ec96c4518236 add backout command.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
diff changeset
    39
ec96c4518236 add backout command.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
diff changeset
    40
echo '# backout with merge'
ec96c4518236 add backout command.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
diff changeset
    41
cd ..
ec96c4518236 add backout command.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
diff changeset
    42
hg init merge
ec96c4518236 add backout command.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
diff changeset
    43
cd merge
ec96c4518236 add backout command.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
diff changeset
    44
ec96c4518236 add backout command.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
diff changeset
    45
echo line 1 > a
ec96c4518236 add backout command.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
diff changeset
    46
hg commit -d '0 0' -A -m a
ec96c4518236 add backout command.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
diff changeset
    47
ec96c4518236 add backout command.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
diff changeset
    48
echo line 2 >> a
ec96c4518236 add backout command.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
diff changeset
    49
hg commit -d '1 0' -m b
ec96c4518236 add backout command.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
diff changeset
    50
ec96c4518236 add backout command.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
diff changeset
    51
echo line 3 >> a
ec96c4518236 add backout command.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
diff changeset
    52
hg commit -d '2 0' -m c
ec96c4518236 add backout command.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
diff changeset
    53
ec96c4518236 add backout command.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
diff changeset
    54
hg backout --merge -d '3 0' 1
ec96c4518236 add backout command.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
diff changeset
    55
hg commit -d '4 0' -m d
ec96c4518236 add backout command.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
diff changeset
    56
cat a
ec96c4518236 add backout command.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
diff changeset
    57
2492
2f4addf56715 Test case for #295
Brendan Cully <brendan@kublai.com>
parents: 2186
diff changeset
    58
echo '# backout should not back out subsequent changesets'
2f4addf56715 Test case for #295
Brendan Cully <brendan@kublai.com>
parents: 2186
diff changeset
    59
hg init onecs
2f4addf56715 Test case for #295
Brendan Cully <brendan@kublai.com>
parents: 2186
diff changeset
    60
cd onecs
2f4addf56715 Test case for #295
Brendan Cully <brendan@kublai.com>
parents: 2186
diff changeset
    61
echo 1 > a
2f4addf56715 Test case for #295
Brendan Cully <brendan@kublai.com>
parents: 2186
diff changeset
    62
hg commit -d '0 0' -A -m a
2f4addf56715 Test case for #295
Brendan Cully <brendan@kublai.com>
parents: 2186
diff changeset
    63
echo 2 >> a
2f4addf56715 Test case for #295
Brendan Cully <brendan@kublai.com>
parents: 2186
diff changeset
    64
hg commit -d '1 0' -m b
2f4addf56715 Test case for #295
Brendan Cully <brendan@kublai.com>
parents: 2186
diff changeset
    65
echo 1 > b
2f4addf56715 Test case for #295
Brendan Cully <brendan@kublai.com>
parents: 2186
diff changeset
    66
hg commit -d '2 0' -A -m c
2f4addf56715 Test case for #295
Brendan Cully <brendan@kublai.com>
parents: 2186
diff changeset
    67
hg backout -d '3 0' 1
2f4addf56715 Test case for #295
Brendan Cully <brendan@kublai.com>
parents: 2186
diff changeset
    68
hg locate b
2f4addf56715 Test case for #295
Brendan Cully <brendan@kublai.com>
parents: 2186
diff changeset
    69
2614
8ba1c31f6864 backout: allow backout of merge changeset with --parent option.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents: 2492
diff changeset
    70
cd ..
8ba1c31f6864 backout: allow backout of merge changeset with --parent option.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents: 2492
diff changeset
    71
hg init m
8ba1c31f6864 backout: allow backout of merge changeset with --parent option.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents: 2492
diff changeset
    72
cd m
8ba1c31f6864 backout: allow backout of merge changeset with --parent option.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents: 2492
diff changeset
    73
echo a > a
8ba1c31f6864 backout: allow backout of merge changeset with --parent option.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents: 2492
diff changeset
    74
hg commit -d '0 0' -A -m a
8ba1c31f6864 backout: allow backout of merge changeset with --parent option.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents: 2492
diff changeset
    75
echo b > b
8ba1c31f6864 backout: allow backout of merge changeset with --parent option.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents: 2492
diff changeset
    76
hg commit -d '1 0' -A -m b
8ba1c31f6864 backout: allow backout of merge changeset with --parent option.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents: 2492
diff changeset
    77
echo c > c
8ba1c31f6864 backout: allow backout of merge changeset with --parent option.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents: 2492
diff changeset
    78
hg commit -d '2 0' -A -m b
8ba1c31f6864 backout: allow backout of merge changeset with --parent option.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents: 2492
diff changeset
    79
hg update 1
8ba1c31f6864 backout: allow backout of merge changeset with --parent option.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents: 2492
diff changeset
    80
echo d > d
8ba1c31f6864 backout: allow backout of merge changeset with --parent option.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents: 2492
diff changeset
    81
hg commit -d '3 0' -A -m c
8ba1c31f6864 backout: allow backout of merge changeset with --parent option.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents: 2492
diff changeset
    82
hg merge 2
8ba1c31f6864 backout: allow backout of merge changeset with --parent option.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents: 2492
diff changeset
    83
hg commit -d '4 0' -A -m d
8ba1c31f6864 backout: allow backout of merge changeset with --parent option.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents: 2492
diff changeset
    84
8ba1c31f6864 backout: allow backout of merge changeset with --parent option.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents: 2492
diff changeset
    85
echo '# backout of merge should fail'
8ba1c31f6864 backout: allow backout of merge changeset with --parent option.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents: 2492
diff changeset
    86
8ba1c31f6864 backout: allow backout of merge changeset with --parent option.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents: 2492
diff changeset
    87
hg backout 4
8ba1c31f6864 backout: allow backout of merge changeset with --parent option.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents: 2492
diff changeset
    88
8ba1c31f6864 backout: allow backout of merge changeset with --parent option.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents: 2492
diff changeset
    89
echo '# backout of merge with bad parent should fail'
8ba1c31f6864 backout: allow backout of merge changeset with --parent option.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents: 2492
diff changeset
    90
8ba1c31f6864 backout: allow backout of merge changeset with --parent option.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents: 2492
diff changeset
    91
hg backout --parent 0 4
8ba1c31f6864 backout: allow backout of merge changeset with --parent option.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents: 2492
diff changeset
    92
8ba1c31f6864 backout: allow backout of merge changeset with --parent option.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents: 2492
diff changeset
    93
echo '# backout of non-merge with parent should fail'
8ba1c31f6864 backout: allow backout of merge changeset with --parent option.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents: 2492
diff changeset
    94
8ba1c31f6864 backout: allow backout of merge changeset with --parent option.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents: 2492
diff changeset
    95
hg backout --parent 0 3
8ba1c31f6864 backout: allow backout of merge changeset with --parent option.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents: 2492
diff changeset
    96
8ba1c31f6864 backout: allow backout of merge changeset with --parent option.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents: 2492
diff changeset
    97
echo '# backout with valid parent should be ok'
8ba1c31f6864 backout: allow backout of merge changeset with --parent option.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents: 2492
diff changeset
    98
8ba1c31f6864 backout: allow backout of merge changeset with --parent option.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents: 2492
diff changeset
    99
hg backout -d '5 0' --parent 2 4
8ba1c31f6864 backout: allow backout of merge changeset with --parent option.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents: 2492
diff changeset
   100
8ba1c31f6864 backout: allow backout of merge changeset with --parent option.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents: 2492
diff changeset
   101
hg rollback
8ba1c31f6864 backout: allow backout of merge changeset with --parent option.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents: 2492
diff changeset
   102
hg update -C
8ba1c31f6864 backout: allow backout of merge changeset with --parent option.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents: 2492
diff changeset
   103
8ba1c31f6864 backout: allow backout of merge changeset with --parent option.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents: 2492
diff changeset
   104
hg backout -d '6 0' --parent 3 4
8ba1c31f6864 backout: allow backout of merge changeset with --parent option.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents: 2492
diff changeset
   105
2158
ec96c4518236 add backout command.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
diff changeset
   106
exit 0