Mercurial > hg
view tests/test-convert-baz @ 14369:f8932d540088
patch: handle binary copies as regular ones
This introduces a performance regression for large files, as they will be
copied just to be clobbered afterwards since binary patching does not use
deltas. But it simplifies the code and the previous optimization will be
reintroduced later in a better way.
author | Patrick Mezard <pmezard@gmail.com> |
---|---|
date | Wed, 18 May 2011 23:48:13 +0200 |
parents | 7fc79055a62b |
children |
line wrap: on
line source
#!/bin/sh "$TESTDIR/hghave" baz || exit 80 baz my-id "mercurial <mercurial@selenic.com>" echo "[extensions]" >> $HGRCPATH echo "convert=" >> $HGRCPATH echo 'graphlog =' >> $HGRCPATH echo % create baz archive baz make-archive baz@mercurial--convert hg-test-convert-baz echo % initialize baz repo mkdir baz-repo cd baz-repo/ baz init-tree baz@mercurial--convert/baz--test--0 baz import echo % create initial files echo 'this is a file' > a baz add a mkdir src baz add src cd src dd count=1 if=/dev/zero of=b > /dev/null 2> /dev/null baz add b # HACK: hide GNU tar-1.22 "tar: The --preserve option is deprecated, use --preserve-permissions --preserve-order instead" baz commit -s "added a file, src and src/b (binary)" 2>&1 | grep -v '^tar' echo % create link file and modify a ln -s ../a a-link baz add a-link echo 'this a modification to a' >> ../a baz commit -s "added link to a and modify a" echo % create second link and modify b ln -s ../a a-link-2 baz add a-link-2 dd count=1 seek=1 if=/dev/zero of=b > /dev/null 2> /dev/null baz 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 baz commit -s "file to link and link to file test" echo % move a-link-2 file and src directory cd .. baz mv src/a-link-2 c baz mv src test baz commit -s "move and rename a-link-2 file and src directory" echo % move and add the moved file again echo e > e baz add e baz commit -s "add e" baz mv e f echo ee > e baz add e baz commit -s "move e and recreate it again" cd .. echo % converting baz repo to Mercurial hg convert baz-repo baz-repo-hg baz register-archive -d baz@mercurial--convert glog() { hg glog --template '{rev} "{desc|firstline}" files: {files}\n' "$@" } echo % show graph log glog -R baz-repo-hg hg up -q -R baz-repo-hg hg -R baz-repo-hg manifest --debug hg -R baz-repo-hg log -r 5 -r 7 -C --debug | grep copies