# HG changeset patch # User Mads Kiilerich # Date 1400530250 -7200 # Node ID 0ae44984b8d99b508efd99a053aeab62446faa95 # Parent 3191d330302fb135f99d72fde26199db2776ca33 tests: better tests for two-way convert diff -r 3191d330302f -r 0ae44984b8d9 tests/test-convert-hg-sink.t --- a/tests/test-convert-hg-sink.t Thu May 29 12:25:25 2014 -0700 +++ b/tests/test-convert-hg-sink.t Mon May 19 22:10:50 2014 +0200 @@ -392,3 +392,145 @@ o 0 a4a1dae0fe35 "1: add a and dir/b" files: 0 a $ cd .. + +Two way tests + + $ hg init 0 + $ echo f > 0/f + $ echo a > 0/a-only + $ echo b > 0/b-only + $ hg -R 0 ci -Aqm0 + + $ cat << EOF > filemap-a + > exclude b-only + > EOF + $ cat << EOF > filemap-b + > exclude a-only + > EOF + $ hg convert --filemap filemap-a 0 a + initializing destination a repository + scanning source... + sorting... + converting... + 0 0 + $ hg -R a up -q + $ echo a > a/f + $ hg -R a ci -ma + + $ hg convert --filemap filemap-b 0 b + initializing destination b repository + scanning source... + sorting... + converting... + 0 0 + $ hg -R b up -q + $ echo b > b/f + $ hg -R b ci -mb + + $ tail */.hg/shamap + ==> 0/.hg/shamap <== + 86f3f774ffb682bffb5dc3c1d3b3da637cb9a0d6 8a028c7c77f6c7bd6d63bc3f02ca9f779eabf16a + dd9f218eb91fb857f2a62fe023e1d64a4e7812fe 8a028c7c77f6c7bd6d63bc3f02ca9f779eabf16a + + ==> a/.hg/shamap <== + 8a028c7c77f6c7bd6d63bc3f02ca9f779eabf16a 86f3f774ffb682bffb5dc3c1d3b3da637cb9a0d6 + + ==> b/.hg/shamap <== + 8a028c7c77f6c7bd6d63bc3f02ca9f779eabf16a dd9f218eb91fb857f2a62fe023e1d64a4e7812fe + + $ hg convert a 0 + scanning source... + sorting... + converting... + 0 a + + $ hg convert b 0 + scanning source... + sorting... + converting... + 0 b + + $ hg -R 0 log -G + o changeset: 2:637fbbbe96b6 + | tag: tip + | parent: 0:8a028c7c77f6 + | user: test + | date: Thu Jan 01 00:00:00 1970 +0000 + | summary: b + | + | o changeset: 1:ec7b9c96e692 + |/ user: test + | date: Thu Jan 01 00:00:00 1970 +0000 + | summary: a + | + @ changeset: 0:8a028c7c77f6 + user: test + date: Thu Jan 01 00:00:00 1970 +0000 + summary: 0 + + $ hg convert --filemap filemap-b 0 a --config convert.hg.revs=1:: + scanning source... + sorting... + converting... + + $ hg -R 0 up -r1 + 1 files updated, 0 files merged, 0 files removed, 0 files unresolved + $ echo f >> 0/f + $ hg -R 0 ci -mx + + $ hg convert --filemap filemap-b 0 a --config convert.hg.revs=1:: + scanning source... + sorting... + converting... + 0 x + + $ hg -R a log -G -T '{rev} {desc|firstline} ({files})\n' + o 2 x (f) + | + @ 1 a (f) + | + o 0 0 (a-only f) + + $ hg -R a mani -r tip + a-only + f + +An additional round, demonstrating that unchanged files don't get converted + + $ echo f >> 0/f + $ echo f >> 0/a-only + $ hg -R 0 ci -m "extra f+a-only change" + + $ hg convert --filemap filemap-b 0 a --config convert.hg.revs=1:: + scanning source... + sorting... + converting... + 0 extra f+a-only change + + $ hg -R a log -G -T '{rev} {desc|firstline} ({files})\n' + o 3 extra f+a-only change (f) + | + o 2 x (f) + | + @ 1 a (f) + | + o 0 0 (a-only f) + + +Conversion after rollback + + $ hg -R a rollback -f + repository tip rolled back to revision 2 (undo commit) + + $ hg convert --filemap filemap-b 0 a --config convert.hg.revs=1:: + scanning source... + sorting... + converting... + + $ hg -R a log -G -T '{rev} {desc|firstline} ({files})\n' + o 2 x (f) + | + @ 1 a (f) + | + o 0 0 (a-only f) +