Mercurial > hg > mercurial-crew-with-dirclash
view tests/test-merge-commit @ 5403:477136fa6571
Always copy the necessary files before applying a git patch
This patch removes the "copymod" attribute from the gitpatch
class.
AFAICS, that attribute was only used to delay the copying of
renamed/copied files if there are no other changes to the target,
but in this case, if there are changes to the source, we'll end
up copying the wrong version.
This should fix issue762.
author | Alexis S. L. Carvalho <alexis@cecm.usp.br> |
---|---|
date | Sat, 06 Oct 2007 15:30:15 -0300 |
parents | 46280c004f22 |
children |
line wrap: on
line source
#!/bin/sh # check that renames are correctly saved by a commit after a merge # test with the merge on 3 having the rename on the local parent hg init a cd a echo line1 > foo hg add foo hg ci -m '0: add foo' -d '0 0' echo line2 >> foo hg ci -m '1: change foo' -d '0 0' hg up -C 0 hg mv foo bar rm bar echo line0 > bar echo line1 >> bar hg ci -m '2: mv foo bar; change bar' -d '0 0' hg merge 1 echo '% contents of bar should be line0 line1 line2' cat bar hg ci -m '3: merge with local rename' -d '0 0' hg debugindex .hg/store/data/bar.i hg debugrename bar hg debugindex .hg/store/data/foo.i # revert the content change from rev 2 hg up -C 2 rm bar echo line1 > bar hg ci -m '4: revert content change from rev 2' -d '0 0' hg log --template '#rev#:#node|short# #parents#\n' echo '% this should use bar@rev2 as the ancestor' hg --debug merge 3 echo '% contents of bar should be line1 line2' cat bar hg ci -m '5: merge' -d '0 0' hg debugindex .hg/store/data/bar.i # same thing, but with the merge on 3 having the rename on the remote parent echo echo cd .. hg clone -U -r 1 -r 2 a b cd b hg up -C 1 hg merge 2 echo '% contents of bar should be line0 line1 line2' cat bar hg ci -m '3: merge with remote rename' -d '0 0' hg debugindex .hg/store/data/bar.i hg debugrename bar hg debugindex .hg/store/data/foo.i # revert the content change from rev 2 hg up -C 2 rm bar echo line1 > bar hg ci -m '4: revert content change from rev 2' -d '0 0' hg log --template '#rev#:#node|short# #parents#\n' echo '% this should use bar@rev2 as the ancestor' hg --debug merge 3 echo '% contents of bar should be line1 line2' cat bar hg ci -m '5: merge' -d '0 0' hg debugindex .hg/store/data/bar.i