summaryrefslogtreecommitdiff
path: root/tests/test-convert-hg-startrev.t
diff options
context:
space:
mode:
authorLorry <lorry@roadtrain.codethink.co.uk>2012-08-22 14:49:51 +0100
committerLorry <lorry@roadtrain.codethink.co.uk>2012-08-22 14:49:51 +0100
commita498da43c7fdb9f24b73680c02a4a3588cc62d9a (patch)
treedaf8119dae1749b5165b68033a1b23a7375ce9ce /tests/test-convert-hg-startrev.t
downloadmercurial-tarball-a498da43c7fdb9f24b73680c02a4a3588cc62d9a.tar.gz
Tarball conversion
Diffstat (limited to 'tests/test-convert-hg-startrev.t')
-rw-r--r--tests/test-convert-hg-startrev.t174
1 files changed, 174 insertions, 0 deletions
diff --git a/tests/test-convert-hg-startrev.t b/tests/test-convert-hg-startrev.t
new file mode 100644
index 0000000..4d62cf2
--- /dev/null
+++ b/tests/test-convert-hg-startrev.t
@@ -0,0 +1,174 @@
+
+ $ cat >> $HGRCPATH <<EOF
+ > [extensions]
+ > graphlog =
+ > convert =
+ > [convert]
+ > hg.saverev = yes
+ > EOF
+
+ $ glog()
+ > {
+ > hg -R "$1" glog --template '{rev} "{desc}" files: {files}\n'
+ > }
+
+ $ hg init source
+ $ cd source
+
+ $ echo a > a
+ $ echo b > b
+ $ hg ci -d '0 0' -qAm '0: add a b'
+ $ echo c > c
+ $ hg ci -d '1 0' -qAm '1: add c'
+ $ hg copy a e
+ $ echo b >> b
+ $ hg ci -d '2 0' -qAm '2: copy e from a, change b'
+ $ hg up -C 0
+ 1 files updated, 0 files merged, 2 files removed, 0 files unresolved
+ $ echo a >> a
+ $ hg ci -d '3 0' -qAm '3: change a'
+ $ hg merge
+ merging a and e to e
+ 2 files updated, 1 files merged, 0 files removed, 0 files unresolved
+ (branch merge, don't forget to commit)
+ $ hg copy b d
+ $ hg ci -d '4 0' -qAm '4: merge 2 and 3, copy d from b'
+ $ echo a >> a
+ $ hg ci -d '5 0' -qAm '5: change a'
+ $ cd ..
+
+Convert from null revision
+
+ $ hg convert --config convert.hg.startrev=null source full
+ initializing destination full repository
+ scanning source...
+ sorting...
+ converting...
+ 5 0: add a b
+ 4 1: add c
+ 3 2: copy e from a, change b
+ 2 3: change a
+ 1 4: merge 2 and 3, copy d from b
+ 0 5: change a
+
+ $ glog full
+ o 5 "5: change a" files: a
+ |
+ o 4 "4: merge 2 and 3, copy d from b" files: d e
+ |\
+ | o 3 "3: change a" files: a
+ | |
+ o | 2 "2: copy e from a, change b" files: b e
+ | |
+ o | 1 "1: add c" files: c
+ |/
+ o 0 "0: add a b" files: a b
+
+ $ rm -Rf full
+
+Convert from zero revision
+
+ $ hg convert --config convert.hg.startrev=0 source full
+ initializing destination full repository
+ scanning source...
+ sorting...
+ converting...
+ 5 0: add a b
+ 4 1: add c
+ 3 2: copy e from a, change b
+ 2 3: change a
+ 1 4: merge 2 and 3, copy d from b
+ 0 5: change a
+
+ $ glog full
+ o 5 "5: change a" files: a
+ |
+ o 4 "4: merge 2 and 3, copy d from b" files: d e
+ |\
+ | o 3 "3: change a" files: a
+ | |
+ o | 2 "2: copy e from a, change b" files: b e
+ | |
+ o | 1 "1: add c" files: c
+ |/
+ o 0 "0: add a b" files: a b
+
+Convert from merge parent
+
+ $ hg convert --config convert.hg.startrev=1 source conv1
+ initializing destination conv1 repository
+ scanning source...
+ sorting...
+ converting...
+ 3 1: add c
+ 2 2: copy e from a, change b
+ 1 4: merge 2 and 3, copy d from b
+ 0 5: change a
+
+ $ glog conv1
+ o 3 "5: change a" files: a
+ |
+ o 2 "4: merge 2 and 3, copy d from b" files: a d e
+ |
+ o 1 "2: copy e from a, change b" files: b e
+ |
+ o 0 "1: add c" files: a b c
+
+ $ cd conv1
+ $ hg up -q
+
+Check copy preservation
+
+ $ hg log --follow --copies e
+ changeset: 2:79818a521a40
+ user: test
+ date: Thu Jan 01 00:00:04 1970 +0000
+ summary: 4: merge 2 and 3, copy d from b
+
+ changeset: 1:3e6201832cce
+ user: test
+ date: Thu Jan 01 00:00:02 1970 +0000
+ summary: 2: copy e from a, change b
+
+Check copy removal on missing parent
+
+ $ hg log --follow --copies d
+ changeset: 2:79818a521a40
+ user: test
+ date: Thu Jan 01 00:00:04 1970 +0000
+ summary: 4: merge 2 and 3, copy d from b
+
+ $ hg cat -r tip a b
+ a
+ a
+ a
+ b
+ b
+ $ hg -q verify
+ $ cd ..
+
+Convert from merge
+
+ $ hg convert --config convert.hg.startrev=4 source conv4
+ initializing destination conv4 repository
+ scanning source...
+ sorting...
+ converting...
+ 1 4: merge 2 and 3, copy d from b
+ 0 5: change a
+ $ glog conv4
+ o 1 "5: change a" files: a
+ |
+ o 0 "4: merge 2 and 3, copy d from b" files: a b c d e
+
+ $ cd conv4
+ $ hg up -C
+ 5 files updated, 0 files merged, 0 files removed, 0 files unresolved
+ $ hg cat -r tip a b
+ a
+ a
+ a
+ b
+ b
+ $ hg -q verify
+ $ cd ..