Mercurial > hg-stable
view tests/test-merge-local @ 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 | 4c94b6d0fb1c |
line wrap: on
line source
#!/bin/sh hg init echo "# revision 0" echo "unchanged" > unchanged echo "remove me" > remove echo "copy me" > copy echo "move me" > move for i in 1 2 3 4 5 6 7 8 9; do echo "merge ok $i" >> zzz1_merge_ok done echo "merge bad" > zzz2_merge_bad hg ci -Am "revision 0" -d "1000000 0" echo "# revision 1" hg rm remove hg mv move moved hg cp copy copied echo "added" > added hg add added echo "new first line" > zzz1_merge_ok hg cat zzz1_merge_ok >> zzz1_merge_ok echo "new last line" >> zzz2_merge_bad hg ci -m "revision 1" -d "1000000 0" echo "# local changes to revision 0" hg co 0 echo "new last line" >> zzz1_merge_ok echo "another last line" >> zzz2_merge_bad hg diff --nodates | grep "^[+-][^<>]" hg st echo "# local merge with bad merge tool" HGMERGE=false hg co hg co 0 hg diff --nodates | grep "^[+-][^<>]" hg st echo "# local merge with conflicts" hg co hg co 0 hg diff --nodates | grep "^[+-][^<>]" hg st echo "# local merge without conflicts" hg revert zzz2_merge_bad hg co hg diff --nodates | grep "^[+-][^<>]" hg st