diff options
Diffstat (limited to 'tests/test-convert-hg-source.t')
-rw-r--r-- | tests/test-convert-hg-source.t | 149 |
1 files changed, 149 insertions, 0 deletions
diff --git a/tests/test-convert-hg-source.t b/tests/test-convert-hg-source.t new file mode 100644 index 0000000..a39b2b7 --- /dev/null +++ b/tests/test-convert-hg-source.t @@ -0,0 +1,149 @@ + $ 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' + created new head + $ hg bookmark premerge1 + $ hg merge -r 1 + 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 bookmark premerge2 + $ 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 +#if execbit + $ chmod +x baz +#else + $ echo some other change to make sure we get a rev 5 > baz +#endif + $ hg ci -m 'mark baz executable' -d '5 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... + 5 add foo bar + 4 change foo + 3 make bar and baz copies of foo + 2 merge local copy + 1 merge remote copy + 0 mark baz executable + updating bookmarks + $ cd new + $ hg out ../orig + comparing with ../orig + searching for changes + no changes found + [1] +#if execbit + $ hg bookmarks + premerge1 3:973ef48a98a4 + premerge2 5:13d9b87cf8f8 +#else +Different hash because no x bit + $ hg bookmarks + premerge1 3:973ef48a98a4 + premerge2 5:df0779bcf33c +#endif + $ cd .. + +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' + scanning source... + sorting... + converting... + 1 change foo again again + 0 change foo again + updating bookmarks + +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 + created new head + $ HGMERGE=internal:local hg -q merge + $ hg ci -m merge + $ hg mv b d + $ hg ci -m moveb + +break it + + $ 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 + +manifest -r 0 + + $ hg -R fixed manifest -r 0 + a + +manifest -r tip + + $ hg -R fixed manifest -r tip + a + c + d |