Mercurial > hg
view tests/test-convert-bzr @ 8810:ac92775b3b80
Add patch.eol to ignore EOLs when patching (issue1019)
The intent is to fix many issues involving patching when win32ext is enabled.
With win32ext, the working directory and repository files EOLs are not the same
which means that patches made on a non-win32ext host do not apply cleanly
because of EOLs discrepancies. A theorically correct approach would be
transform either the patched file or the patch content with the
encoding/decoding filters used by win32ext. This solution is tricky to
implement and invasive, instead we prefer to address the win32ext case, by
offering a way to ignore input EOLs when patching and rewriting them when
saving the patched result.
author | Patrick Mezard <pmezard@gmail.com> |
---|---|
date | Mon, 15 Jun 2009 00:03:26 +0200 |
parents | dd24488cba2d |
children |
line wrap: on
line source
#!/bin/sh . "$TESTDIR/bzr-definitions" echo % create and rename on the same file in the same step mkdir test-createandrename cd test-createandrename bzr init -q source cd source echo a > a echo c > c echo e > e bzr add -q a c e bzr commit -q -m 'Initial add: a, c, e' bzr mv a b bzr mv c d bzr mv e f echo a2 >> a mkdir e bzr add -q a e bzr commit -q -m 'rename a into b, create a, rename c into d' cd .. hg convert source source-hg glog -R source-hg echo "% manifest" hg manifest -R source-hg -r tip echo "% test --rev option" hg convert -r 1 source source-1-hg glog -R source-1-hg echo "% test with filemap" cat > filemap <<EOF exclude a EOF hg convert --filemap filemap source source-filemap-hg hg -R source-filemap-hg manifest -r tip echo '% convert from lightweight checkout' bzr checkout --lightweight source source-light hg convert source-light source-light-hg echo "% lightweight manifest" hg manifest -R source-light-hg -r tip # extract timestamps that look just like hg's {date|isodate}: # yyyy-mm-dd HH:MM zzzz (no seconds!) echo "% compare timestamps" cd source bzr log | \ sed '/timestamp/!d;s/.\{15\}\([0-9: -]\{16\}\):.. \(.[0-9]\{4\}\)/\1 \2/' \ > ../bzr-timestamps cd .. hg -R source-hg log --template "{date|isodate}\n" > hg-timestamps if diff -q bzr-timestamps hg-timestamps ; then echo "good: hg timestamps match bzr timestamps" else echo "fail: bzr timestamps are:" cat bzr-timestamps echo "but hg timestamps are:" cat hg-timestamps fi cd .. echo % merge mkdir test-merge cd test-merge cat > helper.py <<EOF import sys from bzrlib import workingtree wt = workingtree.WorkingTree.open('.') message, stamp = sys.argv[1:] wt.commit(message, timestamp=int(stamp)) EOF bzr init -q source cd source echo content > a echo content2 > b bzr add -q a b bzr commit -q -m 'Initial add' cd .. bzr branch -q source source-improve cd source echo more >> a python ../helper.py 'Editing a' 100 cd ../source-improve echo content3 >> b python ../helper.py 'Editing b' 200 cd ../source bzr merge -q ../source-improve bzr commit -q -m 'Merged improve branch' cd .. hg convert --datesort source source-hg glog -R source-hg cd .. echo % symlinks and executable files mkdir test-symlinks cd test-symlinks bzr init -q source cd source touch program chmod +x program ln -s program altname mkdir d echo a > d/a ln -s a syma bzr add -q altname program syma d/a bzr commit -q -m 'Initial setup' touch newprog chmod +x newprog rm altname ln -s newprog altname chmod -x program bzr add -q newprog bzr commit -q -m 'Symlink changed, x bits changed' cd .. hg convert source source-hg manifest source-hg 0 manifest source-hg tip cd source-hg echo % test the symlinks can be recreated hg up hg cat syma cd ../..