Mercurial > hg-stable
view tests/test-merge-commit @ 5137:2be225ea5722
extdiff: do single file diffs from the wc with no copy
Extdiff was always making a temporary directory and copying files even when not required. This change makes extdiff avoid the copy when diffing a single file that lives in the wc. This lets external diff tools edit the working copy file directly. It also lets other extensions resuse the functions in extdiff and get in-place diffs.
author | Brad Schick <schickb@gmail.com> |
---|---|
date | Mon, 06 Aug 2007 14:50:57 -0700 |
parents | 46280c004f22 |
children | 6c82beaaa11a |
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