tests/test-convert-tla.t
changeset 12533 068449e515e2
parent 10119 bb5ea66789e3
child 13765 7fc79055a62b
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/test-convert-tla.t	Sun Sep 26 17:18:53 2010 -0500
@@ -0,0 +1,139 @@
+
+  $ "$TESTDIR/hghave" tla || exit 80
+  $ mkdir do_not_use_HOME_tla
+  $ cd do_not_use_HOME_tla
+  $ HOME=`pwd`; export HOME
+  $ cd ..
+  $ tla my-id "mercurial <mercurial@selenic.com>"
+  $ echo "[extensions]" >> $HGRCPATH
+  $ echo "convert=" >> $HGRCPATH
+  $ echo 'graphlog =' >> $HGRCPATH
+
+create tla archive
+
+  $ tla make-archive tla@mercurial--convert `pwd`/hg-test-convert-tla
+
+initialize tla repo
+
+  $ mkdir tla-repo
+  $ cd tla-repo/
+  $ tla init-tree tla@mercurial--convert/tla--test--0
+  $ tla import
+  * creating version tla@mercurial--convert/tla--test--0
+  * imported tla@mercurial--convert/tla--test--0
+
+create initial files
+
+  $ echo 'this is a file' > a
+  $ tla add a
+  $ mkdir src
+  $ tla add src
+  $ cd src
+  $ dd count=1 if=/dev/zero of=b > /dev/null 2> /dev/null
+  $ tla add b
+  $ tla commit -s "added a file, src and src/b (binary)"
+  A/ .arch-ids
+  A/ src
+  A/ src/.arch-ids
+  A  .arch-ids/a.id
+  A  a
+  A  src/.arch-ids/=id
+  A  src/.arch-ids/b.id
+  A  src/b
+  * update pristine tree (tla@mercurial--convert/tla--test--0--base-0 => tla--test--0--patch-1)
+  * committed tla@mercurial--convert/tla--test--0--patch-1
+
+create link file and modify a
+
+  $ ln -s ../a a-link
+  $ tla add a-link
+  $ echo 'this a modification to a' >> ../a
+  $ tla commit -s "added link to a and modify a"
+  A  src/.arch-ids/a-link.id
+  A  src/a-link
+  M  a
+  * update pristine tree (tla@mercurial--convert/tla--test--0--patch-1 => tla--test--0--patch-2)
+  * committed tla@mercurial--convert/tla--test--0--patch-2
+
+create second link and modify b
+
+  $ ln -s ../a a-link-2
+  $ tla add a-link-2
+  $ dd count=1 seek=1 if=/dev/zero of=b > /dev/null 2> /dev/null
+  $ tla commit -s "added second link and modify b"
+  A  src/.arch-ids/a-link-2.id
+  A  src/a-link-2
+  Mb src/b
+  * update pristine tree (tla@mercurial--convert/tla--test--0--patch-2 => tla--test--0--patch-3)
+  * committed tla@mercurial--convert/tla--test--0--patch-3
+
+b file to link and a-link-2 to regular file
+
+  $ rm -f a-link-2
+  $ echo 'this is now a regular file' > a-link-2
+  $ ln -sf ../a b
+  $ tla commit -s "file to link and link to file test"
+  fl src/b
+  lf src/a-link-2
+  * update pristine tree (tla@mercurial--convert/tla--test--0--patch-3 => tla--test--0--patch-4)
+  * committed tla@mercurial--convert/tla--test--0--patch-4
+
+move a-link-2 file and src directory
+
+  $ cd ..
+  $ tla mv src/a-link-2 c
+  $ tla mv src test
+  $ tla commit -s "move and rename a-link-2 file and src directory"
+  D/ src/.arch-ids
+  A/ test/.arch-ids
+  /> src	test
+  => src/.arch-ids/a-link-2.id	.arch-ids/c.id
+  => src/a-link-2	c
+  => src/.arch-ids/=id	test/.arch-ids/=id
+  => src/.arch-ids/a-link.id	test/.arch-ids/a-link.id
+  => src/.arch-ids/b.id	test/.arch-ids/b.id
+  * update pristine tree (tla@mercurial--convert/tla--test--0--patch-4 => tla--test--0--patch-5)
+  * committed tla@mercurial--convert/tla--test--0--patch-5
+  $ cd ..
+
+converting tla repo to Mercurial
+
+  $ hg convert tla-repo tla-repo-hg
+  initializing destination tla-repo-hg repository
+  analyzing tree version tla@mercurial--convert/tla--test--0...
+  scanning source...
+  sorting...
+  converting...
+  5 initial import
+  4 added a file, src and src/b (binary)
+  3 added link to a and modify a
+  2 added second link and modify b
+  1 file to link and link to file test
+  0 move and rename a-link-2 file and src directory
+  $ tla register-archive -d tla@mercurial--convert
+  $ glog()
+  > {
+  >     hg glog --template '{rev} "{desc|firstline}" files: {files}\n' "$@"
+  > }
+
+show graph log
+
+  $ glog -R tla-repo-hg
+  o  5 "move and rename a-link-2 file and src directory" files: c src/a-link src/a-link-2 src/b test/a-link test/b
+  |
+  o  4 "file to link and link to file test" files: src/a-link-2 src/b
+  |
+  o  3 "added second link and modify b" files: src/a-link-2 src/b
+  |
+  o  2 "added link to a and modify a" files: a src/a-link
+  |
+  o  1 "added a file, src and src/b (binary)" files: a src/b
+  |
+  o  0 "initial import" files:
+  
+  $ hg up -q -R tla-repo-hg
+  $ hg -R tla-repo-hg manifest --debug
+  c4072c4b72e1cabace081888efa148ee80ca3cbb 644   a
+  0201ac32a3a8e86e303dff60366382a54b48a72e 644   c
+  c0067ba5ff0b7c9a3eb17270839d04614c435623 644 @ test/a-link
+  375f4263d86feacdea7e3c27100abd1560f2a973 644 @ test/b