merge: remember rename copies and parents properly on commit
record copies in dirstate even if rename was remote
this lets us record it properly at commit
teach checkfilemerge about copies, including merge cases
pull old copy code out of commit
extend rename-merge1 test to show file index
--------------
test L:up a R:nc a b W: - 1 get local a to b
--------------
resolving manifests
overwrite None branchmerge True partial False
ancestor e300d1c794ec local 735846fee2d7 remote 924404dff337
rev: versions differ -> m
a: remote copied -> c
merging a and b to b
resolving a
my a@e300d1c794ec other b@735846fee2d7 ancestor a@924404dff337
copying a to b
merging rev
resolving rev
my rev@e300d1c794ec other rev@735846fee2d7 ancestor rev@924404dff337
0 files updated, 2 files merged, 0 files removed, 0 files unresolved
(branch merge, don't forget to commit)
--------------
M a
M b
a
--------------
--------------
test L:nc a b R:up a W: - 2 get rem change to a and b
--------------
resolving manifests
overwrite None branchmerge True partial False
ancestor ac809aeed39a local f4db7e329e71 remote 924404dff337
a: remote is newer -> g
b: local copied -> c
rev: versions differ -> m
getting a
merging b and a to b
resolving b
my b@ac809aeed39a other a@f4db7e329e71 ancestor a@924404dff337
merging rev
resolving rev
my rev@ac809aeed39a other rev@f4db7e329e71 ancestor rev@924404dff337
1 files updated, 2 files merged, 0 files removed, 0 files unresolved
(branch merge, don't forget to commit)
--------------
M a
M b
a
--------------
--------------
test L:up a R:nm a b W: - 3 get local a change to b, remove a
--------------
resolving manifests
overwrite None branchmerge True partial False
ancestor e300d1c794ec local e03727d2d66b remote 924404dff337
a: remote moved -> c
rev: versions differ -> m
merging a and b to b
resolving a
my a@e300d1c794ec other b@e03727d2d66b ancestor a@924404dff337
copying a to b
removing a
merging rev
resolving rev
my rev@e300d1c794ec other rev@e03727d2d66b ancestor rev@924404dff337
0 files updated, 2 files merged, 0 files removed, 0 files unresolved
(branch merge, don't forget to commit)
--------------
M b
a
--------------
--------------
test L:nm a b R:up a W: - 4 get remote change to b
--------------
resolving manifests
overwrite None branchmerge True partial False
ancestor ecf3cb2a4219 local f4db7e329e71 remote 924404dff337
b: local moved -> c
rev: versions differ -> m
merging b and a to b
resolving b
my b@ecf3cb2a4219 other a@f4db7e329e71 ancestor a@924404dff337
merging rev
resolving rev
my rev@ecf3cb2a4219 other rev@f4db7e329e71 ancestor rev@924404dff337
0 files updated, 2 files merged, 0 files removed, 0 files unresolved
(branch merge, don't forget to commit)
--------------
M b
a
--------------
--------------
test L: R:nc a b W: - 5 get b
--------------
resolving manifests
overwrite None branchmerge True partial False
ancestor 94b33a1b7f2d local 735846fee2d7 remote 924404dff337
rev: versions differ -> m
a: remote copied -> c
merging a and b to b
resolving a
my a@924404dff337 other b@735846fee2d7 ancestor a@924404dff337
copying a to b
merging rev
resolving rev
my rev@94b33a1b7f2d other rev@735846fee2d7 ancestor rev@924404dff337
0 files updated, 2 files merged, 0 files removed, 0 files unresolved
(branch merge, don't forget to commit)
--------------
M a
M b
a
--------------
--------------
test L:nc a b R: W: - 6 nothing
--------------
resolving manifests
overwrite None branchmerge True partial False
ancestor ac809aeed39a local 97c705ade336 remote 924404dff337
b: local copied -> c
rev: versions differ -> m
merging b and a to b
resolving b
my b@ac809aeed39a other a@924404dff337 ancestor a@924404dff337
merging rev
resolving rev
my rev@ac809aeed39a other rev@97c705ade336 ancestor rev@924404dff337
0 files updated, 2 files merged, 0 files removed, 0 files unresolved
(branch merge, don't forget to commit)
--------------
M b
a
C a
--------------
--------------
test L: R:nm a b W: - 7 get b
--------------
resolving manifests
overwrite None branchmerge True partial False
ancestor 94b33a1b7f2d local e03727d2d66b remote 924404dff337
a: remote moved -> c
rev: versions differ -> m
merging a and b to b
resolving a
my a@924404dff337 other b@e03727d2d66b ancestor a@924404dff337
copying a to b
removing a
merging rev
resolving rev
my rev@94b33a1b7f2d other rev@e03727d2d66b ancestor rev@924404dff337
0 files updated, 2 files merged, 0 files removed, 0 files unresolved
(branch merge, don't forget to commit)
--------------
M b
a
--------------
--------------
test L:nm a b R: W: - 8 nothing
--------------
resolving manifests
overwrite None branchmerge True partial False
ancestor ecf3cb2a4219 local 97c705ade336 remote 924404dff337
b: local moved -> c
rev: versions differ -> m
merging b and a to b
resolving b
my b@ecf3cb2a4219 other a@924404dff337 ancestor a@924404dff337
merging rev
resolving rev
my rev@ecf3cb2a4219 other rev@97c705ade336 ancestor rev@924404dff337
0 files updated, 2 files merged, 0 files removed, 0 files unresolved
(branch merge, don't forget to commit)
--------------
M b
a
--------------
--------------
test L:um a b R:um a b W: - 9 do merge with ancestor in a
--------------
resolving manifests
overwrite None branchmerge True partial False
ancestor ec03c2ca8642 local 79cc6877a3b7 remote 924404dff337
b: versions differ -> m
rev: versions differ -> m
merging b
resolving b
my b@ec03c2ca8642 other b@79cc6877a3b7 ancestor a@924404dff337
merging rev
resolving rev
my rev@ec03c2ca8642 other rev@79cc6877a3b7 ancestor rev@924404dff337
0 files updated, 2 files merged, 0 files removed, 0 files unresolved
(branch merge, don't forget to commit)
--------------
M b
--------------
--------------
test L:nm a b R:nm a c W: - 11 get c, keep b
--------------
resolving manifests
overwrite None branchmerge True partial False
ancestor ecf3cb2a4219 local e6abcc1a30c2 remote 924404dff337
rev: versions differ -> m
c: remote created -> g
getting c
merging rev
resolving rev
my rev@ecf3cb2a4219 other rev@e6abcc1a30c2 ancestor rev@924404dff337
1 files updated, 1 files merged, 0 files removed, 0 files unresolved
(branch merge, don't forget to commit)
--------------
M c
C b
--------------
--------------
test L:nc a b R:up b W: - 12 merge b no ancestor
--------------
resolving manifests
overwrite None branchmerge True partial False
ancestor ac809aeed39a local af30c7647fc7 remote 924404dff337
b: versions differ -> m
rev: versions differ -> m
merging b
resolving b
my b@ac809aeed39a other b@af30c7647fc7 ancestor b@000000000000
merging rev
resolving rev
my rev@ac809aeed39a other rev@af30c7647fc7 ancestor rev@924404dff337
0 files updated, 2 files merged, 0 files removed, 0 files unresolved
(branch merge, don't forget to commit)
--------------
M b
C a
--------------
--------------
test L:up b R:nm a b W: - 13 merge b no ancestor
--------------
resolving manifests
overwrite None branchmerge True partial False
ancestor 59318016310c local e03727d2d66b remote 924404dff337
a: other deleted -> r
b: versions differ -> m
rev: versions differ -> m
removing a
merging b
resolving b
my b@59318016310c other b@e03727d2d66b ancestor b@000000000000
merging rev
resolving rev
my rev@59318016310c other rev@e03727d2d66b ancestor rev@924404dff337
0 files updated, 2 files merged, 1 files removed, 0 files unresolved
(branch merge, don't forget to commit)
--------------
M b
--------------
--------------
test L:nc a b R:up a b W: - 14 merge b no ancestor
--------------
resolving manifests
overwrite None branchmerge True partial False
ancestor ac809aeed39a local 8dbce441892a remote 924404dff337
a: remote is newer -> g
b: versions differ -> m
rev: versions differ -> m
getting a
merging b
resolving b
my b@ac809aeed39a other b@8dbce441892a ancestor b@000000000000
merging rev
resolving rev
my rev@ac809aeed39a other rev@8dbce441892a ancestor rev@924404dff337
1 files updated, 2 files merged, 0 files removed, 0 files unresolved
(branch merge, don't forget to commit)
--------------
M a
M b
--------------
--------------
test L:up b R:nm a b W: - 15 merge b no ancestor, remove a
--------------
resolving manifests
overwrite None branchmerge True partial False
ancestor 59318016310c local e03727d2d66b remote 924404dff337
a: other deleted -> r
b: versions differ -> m
rev: versions differ -> m
removing a
merging b
resolving b
my b@59318016310c other b@e03727d2d66b ancestor b@000000000000
merging rev
resolving rev
my rev@59318016310c other rev@e03727d2d66b ancestor rev@924404dff337
0 files updated, 2 files merged, 1 files removed, 0 files unresolved
(branch merge, don't forget to commit)
--------------
M b
--------------
--------------
test L:nc a b R:up a b W: - 16 get a, merge b no ancestor
--------------
resolving manifests
overwrite None branchmerge True partial False
ancestor ac809aeed39a local 8dbce441892a remote 924404dff337
a: remote is newer -> g
b: versions differ -> m
rev: versions differ -> m
getting a
merging b
resolving b
my b@ac809aeed39a other b@8dbce441892a ancestor b@000000000000
merging rev
resolving rev
my rev@ac809aeed39a other rev@8dbce441892a ancestor rev@924404dff337
1 files updated, 2 files merged, 0 files removed, 0 files unresolved
(branch merge, don't forget to commit)
--------------
M a
M b
--------------
--------------
test L:up a b R:nc a b W: - 17 keep a, merge b no ancestor
--------------
resolving manifests
overwrite None branchmerge True partial False
ancestor 0b76e65c8289 local 735846fee2d7 remote 924404dff337
b: versions differ -> m
rev: versions differ -> m
merging b
resolving b
my b@0b76e65c8289 other b@735846fee2d7 ancestor b@000000000000
merging rev
resolving rev
my rev@0b76e65c8289 other rev@735846fee2d7 ancestor rev@924404dff337
0 files updated, 2 files merged, 0 files removed, 0 files unresolved
(branch merge, don't forget to commit)
--------------
M b
C a
--------------
--------------
test L:nm a b R:up a b W: - 18 merge b no ancestor
--------------
resolving manifests
overwrite None branchmerge True partial False
ancestor ecf3cb2a4219 local 8dbce441892a remote 924404dff337
b: versions differ -> m
rev: versions differ -> m
a: prompt recreating -> g
getting a
merging b
resolving b
my b@ecf3cb2a4219 other b@8dbce441892a ancestor b@000000000000
merging rev
resolving rev
my rev@ecf3cb2a4219 other rev@8dbce441892a ancestor rev@924404dff337
1 files updated, 2 files merged, 0 files removed, 0 files unresolved
(branch merge, don't forget to commit)
--------------
M a
M b
--------------
--------------
test L:up a b R:nm a b W: - 19 merge b no ancestor, prompt remove a
--------------
resolving manifests
overwrite None branchmerge True partial False
ancestor 0b76e65c8289 local e03727d2d66b remote 924404dff337
b: versions differ -> m
rev: versions differ -> m
merging b
resolving b
my b@0b76e65c8289 other b@e03727d2d66b ancestor b@000000000000
merging rev
resolving rev
my rev@0b76e65c8289 other rev@e03727d2d66b ancestor rev@924404dff337
0 files updated, 2 files merged, 0 files removed, 0 files unresolved
(branch merge, don't forget to commit)
--------------
M b
C a
--------------
--------------
test L:up a R:um a b W: - 20 merge a and b to b, remove a
--------------
resolving manifests
overwrite None branchmerge True partial False
ancestor e300d1c794ec local 79cc6877a3b7 remote 924404dff337
a: remote moved -> c
rev: versions differ -> m
merging a and b to b
resolving a
my a@e300d1c794ec other b@79cc6877a3b7 ancestor a@924404dff337
copying a to b
removing a
merging rev
resolving rev
my rev@e300d1c794ec other rev@79cc6877a3b7 ancestor rev@924404dff337
0 files updated, 2 files merged, 0 files removed, 0 files unresolved
(branch merge, don't forget to commit)
--------------
M b
a
--------------
--------------
test L:um a b R:up a W: - 21 merge a and b to b
--------------
resolving manifests
overwrite None branchmerge True partial False
ancestor ec03c2ca8642 local f4db7e329e71 remote 924404dff337
b: local moved -> c
rev: versions differ -> m
merging b and a to b
resolving b
my b@ec03c2ca8642 other a@f4db7e329e71 ancestor a@924404dff337
merging rev
resolving rev
my rev@ec03c2ca8642 other rev@f4db7e329e71 ancestor rev@924404dff337
0 files updated, 2 files merged, 0 files removed, 0 files unresolved
(branch merge, don't forget to commit)
--------------
M b
a
--------------
--------------
test L:nm a b R:up a c W: - 23 get c, keep b
--------------
resolving manifests
overwrite None branchmerge True partial False
ancestor ecf3cb2a4219 local 2b958612230f remote 924404dff337
b: local moved -> c
rev: versions differ -> m
c: remote created -> g
merging b and a to b
resolving b
my b@ecf3cb2a4219 other a@2b958612230f ancestor a@924404dff337
getting c
merging rev
resolving rev
my rev@ecf3cb2a4219 other rev@2b958612230f ancestor rev@924404dff337
1 files updated, 2 files merged, 0 files removed, 0 files unresolved
(branch merge, don't forget to commit)
--------------
M b
a
M c
--------------