annotate tests/test-merge9 @ 5149: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 dc5920ea12f8
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
4681
dc5920ea12f8 merge: fix small bug with a failed merge across a rename
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff changeset
1 #!/bin/sh
dc5920ea12f8 merge: fix small bug with a failed merge across a rename
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff changeset
2
dc5920ea12f8 merge: fix small bug with a failed merge across a rename
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff changeset
3 # test that we don't interrupt the merge session if
dc5920ea12f8 merge: fix small bug with a failed merge across a rename
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff changeset
4 # a file-level merge failed
dc5920ea12f8 merge: fix small bug with a failed merge across a rename
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff changeset
5
dc5920ea12f8 merge: fix small bug with a failed merge across a rename
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff changeset
6 hg init repo
dc5920ea12f8 merge: fix small bug with a failed merge across a rename
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff changeset
7 cd repo
dc5920ea12f8 merge: fix small bug with a failed merge across a rename
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff changeset
8
dc5920ea12f8 merge: fix small bug with a failed merge across a rename
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff changeset
9 echo foo > foo
dc5920ea12f8 merge: fix small bug with a failed merge across a rename
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff changeset
10 echo a > bar
dc5920ea12f8 merge: fix small bug with a failed merge across a rename
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff changeset
11 hg ci -Am 'add foo' -d '0 0'
dc5920ea12f8 merge: fix small bug with a failed merge across a rename
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff changeset
12
dc5920ea12f8 merge: fix small bug with a failed merge across a rename
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff changeset
13 hg mv foo baz
dc5920ea12f8 merge: fix small bug with a failed merge across a rename
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff changeset
14 echo b >> bar
dc5920ea12f8 merge: fix small bug with a failed merge across a rename
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff changeset
15 echo quux > quux1
dc5920ea12f8 merge: fix small bug with a failed merge across a rename
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff changeset
16 hg ci -Am 'mv foo baz' -d '0 0'
dc5920ea12f8 merge: fix small bug with a failed merge across a rename
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff changeset
17
dc5920ea12f8 merge: fix small bug with a failed merge across a rename
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff changeset
18 hg up -qC 0
dc5920ea12f8 merge: fix small bug with a failed merge across a rename
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff changeset
19 echo >> foo
dc5920ea12f8 merge: fix small bug with a failed merge across a rename
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff changeset
20 echo c >> bar
dc5920ea12f8 merge: fix small bug with a failed merge across a rename
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff changeset
21 echo quux > quux2
dc5920ea12f8 merge: fix small bug with a failed merge across a rename
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff changeset
22 hg ci -Am 'change foo' -d '0 0'
dc5920ea12f8 merge: fix small bug with a failed merge across a rename
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff changeset
23
dc5920ea12f8 merge: fix small bug with a failed merge across a rename
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff changeset
24 # test with the rename on the remote side
dc5920ea12f8 merge: fix small bug with a failed merge across a rename
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff changeset
25 HGMERGE=false hg merge
dc5920ea12f8 merge: fix small bug with a failed merge across a rename
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff changeset
26
dc5920ea12f8 merge: fix small bug with a failed merge across a rename
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff changeset
27 # test with the rename on the local side
dc5920ea12f8 merge: fix small bug with a failed merge across a rename
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff changeset
28 hg up -C 1
dc5920ea12f8 merge: fix small bug with a failed merge across a rename
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff changeset
29 HGMERGE=false hg merge
dc5920ea12f8 merge: fix small bug with a failed merge across a rename
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff changeset
30
dc5920ea12f8 merge: fix small bug with a failed merge across a rename
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff changeset
31 true