# HG changeset patch # User Matt Mackall # Date 2010-09-26 21:48:57 # Node ID 9892949bd969cd6df0889c5138d8de211a2b6259 # Parent 81bf25ddd76a56b4f63e4206effe78222b3072a3 tests: unify test-convert-hg-source diff --git a/tests/test-convert-hg-source.out b/tests/test-convert-hg-source.out deleted file mode 100644 --- a/tests/test-convert-hg-source.out +++ /dev/null @@ -1,55 +0,0 @@ -created new head -merging baz and foo to baz -1 files updated, 1 files merged, 0 files removed, 0 files unresolved -(branch merge, don't forget to commit) -1 files updated, 0 files merged, 1 files removed, 0 files unresolved -merging foo and baz to baz -1 files updated, 1 files merged, 0 files removed, 0 files unresolved -(branch merge, don't forget to commit) -created new head -marked working directory as branch foo -initializing destination new repository -scanning source... -sorting... -converting... -7 add foo bar -6 change foo -5 make bar and baz copies of foo -4 merge local copy -3 merge remote copy -2 mark baz executable -1 branch foo -0 close -comparing with ../orig -searching for changes -no changes found -% check shamap LF and CRLF handling -scanning source... -sorting... -converting... -1 change foo again again -0 change foo again -% init broken repository -created new head -% break it -initializing destination fixed repository -scanning source... -sorting... -converting... -4 init -ignoring: data/b.i@1e88685f5dde: no match found -3 changeall -2 changebagain -1 merge -0 moveb -checking changesets -checking manifests -crosschecking files in changesets and manifests -checking files -3 files, 5 changesets, 5 total revisions -% manifest -r 0 -a -% manifest -r tip -a -c -d diff --git a/tests/test-convert-hg-source b/tests/test-convert-hg-source.t old mode 100755 new mode 100644 rename from tests/test-convert-hg-source rename to tests/test-convert-hg-source.t --- a/tests/test-convert-hg-source +++ b/tests/test-convert-hg-source.t @@ -1,92 +1,138 @@ -#!/bin/sh - -cat >> $HGRCPATH < 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' + $ cat >> $HGRCPATH < [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' + created new head + $ hg merge + merging baz and foo to baz + 1 files updated, 1 files merged, 0 files removed, 0 files unresolved + (branch merge, don't forget to commit) + $ hg ci -m 'merge local copy' -d '3 0' + $ hg up -C 1 + 1 files updated, 0 files merged, 1 files removed, 0 files unresolved + $ hg merge 2 + merging foo and baz to baz + 1 files updated, 1 files merged, 0 files removed, 0 files unresolved + (branch merge, don't forget to commit) + $ hg ci -m 'merge remote copy' -d '4 0' + created new head + $ chmod +x baz + $ hg ci -m 'mark baz executable' -d '5 0' + $ hg branch foo + marked working directory as 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' + initializing destination new repository + scanning source... + sorting... + converting... + 7 add foo bar + 6 change foo + 5 make bar and baz copies of foo + 4 merge local copy + 3 merge remote copy + 2 mark baz executable + 1 branch foo + 0 close + $ cd new + $ hg out ../orig + comparing with ../orig + searching for changes + no changes found + [1] + $ cd .. -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 .. +check shamap LF and CRLF handling -echo '% check shamap LF and CRLF handling' -cat > rewrite.py <> 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' + $ cat > rewrite.py < 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' + scanning source... + sorting... + converting... + 1 change foo again again + 0 change foo again + +init broken repository -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 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 + created new head + $ HGMERGE=internal:local hg -q merge + $ hg ci -m merge + $ hg mv b d + $ hg ci -m moveb + +break it -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 + $ rm .hg/store/data/b.* + $ cd .. + $ hg --config convert.hg.ignoreerrors=True convert broken fixed + initializing destination fixed repository + scanning source... + sorting... + converting... + 4 init + ignoring: data/b.i@1e88685f5dde: no match found + 3 changeall + 2 changebagain + 1 merge + 0 moveb + $ hg -R fixed verify + checking changesets + checking manifests + crosschecking files in changesets and manifests + checking files + 3 files, 5 changesets, 5 total revisions -true +manifest -r 0 + + $ hg -R fixed manifest -r 0 + a + +manifest -r tip + + $ hg -R fixed manifest -r tip + a + c + d