Mercurial > hg
annotate tests/test-copy2 @ 5096:ad6b97132b81
merge: fix a copy detection bug (issue672)
When merging rev1 and rev2, we want to search for copies that happened
in rev1 but not in rev2 and vice-versa. We were starting the search at
rev1/rev2 and then going back, stopping as soon as we reached the revno
of the ancestor, but that can miss some cases (see the new
test-issue672).
Now we calculate the revisions that are ancestors of rev1 or rev2 (but
not both) and make sure the search doesn't stop too early.
Simplified test provided by mpm, based on a test case provided by
Edward Lee.
author | Alexis S. L. Carvalho <alexis@cecm.usp.br> |
---|---|
date | Sun, 12 Aug 2007 12:15:10 -0300 |
parents | 44e17f5029d0 |
children | 6c82beaaa11a |
rev | line source |
---|---|
1117 | 1 #!/bin/sh |
2 | |
3 hg init | |
4 echo foo > foo | |
4744
44e17f5029d0
Make hg add foo; hg mv foo bar work.
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
4743
diff
changeset
|
5 echo "# should fail - foo is not managed" |
44e17f5029d0
Make hg add foo; hg mv foo bar work.
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
4743
diff
changeset
|
6 hg mv foo bar |
44e17f5029d0
Make hg add foo; hg mv foo bar work.
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
4743
diff
changeset
|
7 hg st -A |
1117 | 8 hg add foo |
4744
44e17f5029d0
Make hg add foo; hg mv foo bar work.
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
4743
diff
changeset
|
9 echo "# dry-run; print a warning that this is not a real copy; foo is added" |
44e17f5029d0
Make hg add foo; hg mv foo bar work.
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
4743
diff
changeset
|
10 hg mv --dry-run foo bar |
44e17f5029d0
Make hg add foo; hg mv foo bar work.
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
4743
diff
changeset
|
11 hg st -A |
44e17f5029d0
Make hg add foo; hg mv foo bar work.
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
4743
diff
changeset
|
12 echo "# should print a warning that this is not a real copy; bar is added" |
44e17f5029d0
Make hg add foo; hg mv foo bar work.
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
4743
diff
changeset
|
13 hg mv foo bar |
44e17f5029d0
Make hg add foo; hg mv foo bar work.
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
4743
diff
changeset
|
14 hg st -A |
44e17f5029d0
Make hg add foo; hg mv foo bar work.
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
4743
diff
changeset
|
15 echo "# should print a warning that this is not a real copy; foo is added" |
44e17f5029d0
Make hg add foo; hg mv foo bar work.
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
4743
diff
changeset
|
16 hg cp bar foo |
44e17f5029d0
Make hg add foo; hg mv foo bar work.
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
4743
diff
changeset
|
17 hg rm -f bar |
44e17f5029d0
Make hg add foo; hg mv foo bar work.
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
4743
diff
changeset
|
18 rm bar |
44e17f5029d0
Make hg add foo; hg mv foo bar work.
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
4743
diff
changeset
|
19 hg st -A |
1117 | 20 hg commit -m1 -d"0 0" |
21 | |
4744
44e17f5029d0
Make hg add foo; hg mv foo bar work.
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
4743
diff
changeset
|
22 echo "# dry-run; should show that foo is clean" |
44e17f5029d0
Make hg add foo; hg mv foo bar work.
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
4743
diff
changeset
|
23 hg copy --dry-run foo bar |
44e17f5029d0
Make hg add foo; hg mv foo bar work.
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
4743
diff
changeset
|
24 hg st -A |
1117 | 25 echo "# should show copy" |
26 hg copy foo bar | |
4743
719c402258ee
test-copy2: use status -C instead of debugstate | grep copy
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
4677
diff
changeset
|
27 hg st -C |
1117 | 28 |
29 echo "# shouldn't show copy" | |
30 hg commit -m2 -d"0 0" | |
4743
719c402258ee
test-copy2: use status -C instead of debugstate | grep copy
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
4677
diff
changeset
|
31 hg st -C |
1117 | 32 |
33 echo "# should match" | |
3853
c0b449154a90
switch to the .hg/store layout, fix the tests
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1252
diff
changeset
|
34 hg debugindex .hg/store/data/foo.i |
1117 | 35 hg debugrename bar |
36 | |
37 echo bleah > foo | |
38 echo quux > bar | |
39 hg commit -m3 -d"0 0" | |
40 | |
41 echo "# should not be renamed" | |
42 hg debugrename bar | |
43 | |
1249
a5355fa5e33a
Fix up copy command to behave more like regular "cp".
Bryan O'Sullivan <bos@serpentine.com>
parents:
1168
diff
changeset
|
44 hg copy -f foo bar |
1117 | 45 echo "# should show copy" |
4743
719c402258ee
test-copy2: use status -C instead of debugstate | grep copy
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
4677
diff
changeset
|
46 hg st -C |
1117 | 47 hg commit -m3 -d"0 0" |
48 | |
49 echo "# should show no parents for tip" | |
3853
c0b449154a90
switch to the .hg/store layout, fix the tests
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1252
diff
changeset
|
50 hg debugindex .hg/store/data/bar.i |
1117 | 51 echo "# should match" |
3853
c0b449154a90
switch to the .hg/store layout, fix the tests
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1252
diff
changeset
|
52 hg debugindex .hg/store/data/foo.i |
1117 | 53 hg debugrename bar |
54 | |
55 echo "# should show no copies" | |
4743
719c402258ee
test-copy2: use status -C instead of debugstate | grep copy
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
4677
diff
changeset
|
56 hg st -C |
1127
19b048da4da9
Fixed test-copy2 with only looking at copied files.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
1117
diff
changeset
|
57 |
4376
de612b5f8d59
Make copy --after work for files that have been hg added.
Brendan Cully <brendan@kublai.com>
parents:
3853
diff
changeset
|
58 echo "# copy --after on an added file" |
de612b5f8d59
Make copy --after work for files that have been hg added.
Brendan Cully <brendan@kublai.com>
parents:
3853
diff
changeset
|
59 cp bar baz |
de612b5f8d59
Make copy --after work for files that have been hg added.
Brendan Cully <brendan@kublai.com>
parents:
3853
diff
changeset
|
60 hg add baz |
de612b5f8d59
Make copy --after work for files that have been hg added.
Brendan Cully <brendan@kublai.com>
parents:
3853
diff
changeset
|
61 hg cp -A bar baz |
de612b5f8d59
Make copy --after work for files that have been hg added.
Brendan Cully <brendan@kublai.com>
parents:
3853
diff
changeset
|
62 hg st -C |
de612b5f8d59
Make copy --after work for files that have been hg added.
Brendan Cully <brendan@kublai.com>
parents:
3853
diff
changeset
|
63 |
4677
de8ec7e1753a
dirstate.status: if a file is marked as copied, consider it modified
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
4376
diff
changeset
|
64 echo "# foo was clean:" |
de8ec7e1753a
dirstate.status: if a file is marked as copied, consider it modified
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
4376
diff
changeset
|
65 hg st -AC foo |
de8ec7e1753a
dirstate.status: if a file is marked as copied, consider it modified
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
4376
diff
changeset
|
66 echo "# but it's considered modified after a copy --after --force" |
de8ec7e1753a
dirstate.status: if a file is marked as copied, consider it modified
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
4376
diff
changeset
|
67 hg copy -Af bar foo |
de8ec7e1753a
dirstate.status: if a file is marked as copied, consider it modified
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
4376
diff
changeset
|
68 hg st -AC foo |
de8ec7e1753a
dirstate.status: if a file is marked as copied, consider it modified
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
4376
diff
changeset
|
69 |
1127
19b048da4da9
Fixed test-copy2 with only looking at copied files.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
1117
diff
changeset
|
70 exit 0 |