|
|
#!/bin/sh
|
|
|
|
|
|
cat >> $HGRCPATH <<EOF
|
|
|
[extensions]
|
|
|
convert=
|
|
|
[convert]
|
|
|
hg.saverev=False
|
|
|
EOF
|
|
|
|
|
|
hg init orig
|
|
|
cd orig
|
|
|
|
|
|
echo foo > foo
|
|
|
echo bar > bar
|
|
|
hg ci -qAm 'add foo bar' -d '0 0'
|
|
|
|
|
|
echo >> foo
|
|
|
hg ci -m 'change foo' -d '1 0'
|
|
|
|
|
|
hg up -qC 0
|
|
|
hg copy --after --force foo bar
|
|
|
hg copy foo baz
|
|
|
hg ci -m 'make bar and baz copies of foo' -d '2 0'
|
|
|
|
|
|
hg merge
|
|
|
hg ci -m 'merge local copy' -d '3 0'
|
|
|
|
|
|
hg up -C 1
|
|
|
hg merge 2
|
|
|
hg ci -m 'merge remote copy' -d '4 0'
|
|
|
|
|
|
chmod +x baz
|
|
|
hg ci -m 'mark baz executable' -d '5 0'
|
|
|
|
|
|
hg branch foo
|
|
|
hg ci -m 'branch foo' -d '6 0'
|
|
|
hg ci --close-branch -m 'close' -d '7 0'
|
|
|
|
|
|
cd ..
|
|
|
hg convert --datesort orig new 2>&1 | grep -v 'subversion python bindings could not be loaded'
|
|
|
cd new
|
|
|
hg out ../orig
|
|
|
cd ..
|
|
|
|
|
|
echo '% check shamap LF and CRLF handling'
|
|
|
cat > rewrite.py <<EOF
|
|
|
import sys
|
|
|
# Interlace LF and CRLF
|
|
|
lines = [(l.rstrip() + ((i % 2) and '\n' or '\r\n'))
|
|
|
for i, l in enumerate(file(sys.argv[1]))]
|
|
|
file(sys.argv[1], 'wb').write(''.join(lines))
|
|
|
EOF
|
|
|
python rewrite.py new/.hg/shamap
|
|
|
cd orig
|
|
|
hg up -qC 1
|
|
|
echo foo >> foo
|
|
|
hg ci -qm 'change foo again'
|
|
|
hg up -qC 2
|
|
|
echo foo >> foo
|
|
|
hg ci -qm 'change foo again again'
|
|
|
cd ..
|
|
|
hg convert --datesort orig new 2>&1 | grep -v 'subversion python bindings could not be loaded'
|
|
|
|
|
|
echo % init broken repository
|
|
|
hg init broken
|
|
|
cd broken
|
|
|
echo a >> a
|
|
|
echo b >> b
|
|
|
hg ci -qAm init
|
|
|
echo a >> a
|
|
|
echo b >> b
|
|
|
hg copy b c
|
|
|
hg ci -qAm changeall
|
|
|
hg up -qC 0
|
|
|
echo bc >> b
|
|
|
hg ci -m changebagain
|
|
|
HGMERGE=internal:local hg -q merge
|
|
|
hg ci -m merge
|
|
|
hg mv b d
|
|
|
hg ci -m moveb
|
|
|
echo % break it
|
|
|
rm .hg/store/data/b.*
|
|
|
cd ..
|
|
|
|
|
|
hg --config convert.hg.ignoreerrors=True convert broken fixed
|
|
|
hg -R fixed verify
|
|
|
echo '% manifest -r 0'
|
|
|
hg -R fixed manifest -r 0
|
|
|
echo '% manifest -r tip'
|
|
|
hg -R fixed manifest -r tip
|
|
|
|
|
|
true
|
|
|
|