bdiff: normalize the diff (
issue1295)
When the common part of a diff can be moved forward, move it forward.
Otherwise we don't get deterministic results (it would depends on the way we
split for the recursion).
That way we get identical hunks when doing the same change, it helps to solve
issue1295 (inconsistent diffs on different side during a merge).
#!/bin/sh
"$TESTDIR/hghave" tla || exit 80
mkdir do_not_use_HOME_tla
cd do_not_use_HOME_tla
HOME=`pwd`; export HOME
cd ..
tla my-id "mercurial <mercurial@selenic.com>"
echo "[extensions]" >> $HGRCPATH
echo "convert=" >> $HGRCPATH
echo 'hgext.graphlog =' >> $HGRCPATH
echo % create tla archive
tla make-archive tla@mercurial--convert `pwd`/hg-test-convert-tla
echo % initialize tla repo
mkdir tla-repo
cd tla-repo/
tla init-tree tla@mercurial--convert/tla--test--0
tla import
echo % create initial files
echo 'this is a file' > a
tla add a
mkdir src
tla add src
cd src
dd count=1 if=/dev/zero of=b > /dev/null 2> /dev/null
tla add b
tla commit -s "added a file, src and src/b (binary)"
echo % create link file and modify a
ln -s ../a a-link
tla add a-link
echo 'this a modification to a' >> ../a
tla commit -s "added link to a and modify a"
echo % create second link and modify b
ln -s ../a a-link-2
tla add a-link-2
dd count=1 seek=1 if=/dev/zero of=b > /dev/null 2> /dev/null
tla commit -s "added second link and modify b"
echo % b file to link and a-link-2 to regular file
rm -f a-link-2
echo 'this is now a regular file' > a-link-2
ln -sf ../a b
tla commit -s "file to link and link to file test"
echo % move a-link-2 file and src directory
cd ..
tla mv src/a-link-2 c
tla mv src test
tla commit -s "move and rename a-link-2 file and src directory"
cd ..
echo % converting tla repo to Mercurial
hg convert tla-repo tla-repo-hg
tla register-archive -d tla@mercurial--convert
glog()
{
hg glog --template '#rev# "#desc|firstline#" files: #files#\n' "$@"
}
echo % show graph log
glog -R tla-repo-hg
hg up -q -R tla-repo-hg
hg -R tla-repo-hg manifest --debug