--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/test-bundle.t Sat Aug 14 03:16:02 2010 +0200
@@ -0,0 +1,558 @@
+ $ cp "$TESTDIR"/printenv.py .
+
+Setting up test
+
+ $ hg init test
+ $ cd test
+ $ echo 0 > afile
+ $ hg add afile
+ $ hg commit -m "0.0" -d "1000000 0"
+ $ echo 1 >> afile
+ $ hg commit -m "0.1" -d "1000000 0"
+ $ echo 2 >> afile
+ $ hg commit -m "0.2" -d "1000000 0"
+ $ echo 3 >> afile
+ $ hg commit -m "0.3" -d "1000000 0"
+ $ hg update -C 0
+ 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
+ $ echo 1 >> afile
+ $ hg commit -m "1.1" -d "1000000 0"
+ created new head
+ $ echo 2 >> afile
+ $ hg commit -m "1.2" -d "1000000 0"
+ $ echo "a line" > fred
+ $ echo 3 >> afile
+ $ hg add fred
+ $ hg commit -m "1.3" -d "1000000 0"
+ $ hg mv afile adifferentfile
+ $ hg commit -m "1.3m" -d "1000000 0"
+ $ hg update -C 3
+ 1 files updated, 0 files merged, 2 files removed, 0 files unresolved
+ $ hg mv afile anotherfile
+ $ hg commit -m "0.3m" -d "1000000 0"
+ $ hg verify
+ checking changesets
+ checking manifests
+ crosschecking files in changesets and manifests
+ checking files
+ 4 files, 9 changesets, 7 total revisions
+ $ cd ..
+ $ hg init empty
+
+Bundle --all
+
+ $ hg -R test bundle --all all.hg
+ 9 changesets found
+
+Bundle test to full.hg
+
+ $ hg -R test bundle full.hg empty
+ searching for changes
+ 9 changesets found
+
+Unbundle full.hg in test
+
+ $ hg -R test unbundle full.hg
+ adding changesets
+ adding manifests
+ adding file changes
+ added 0 changesets with 0 changes to 4 files
+ (run 'hg update' to get a working copy)
+
+Verify empty
+
+ $ hg -R empty heads
+ $ hg -R empty verify
+ checking changesets
+ checking manifests
+ crosschecking files in changesets and manifests
+ checking files
+ 0 files, 0 changesets, 0 total revisions
+
+Pull full.hg into test (using --cwd)
+
+ $ hg --cwd test pull ../full.hg
+ pulling from ../full.hg
+ searching for changes
+ no changes found
+
+Pull full.hg into empty (using --cwd)
+
+ $ hg --cwd empty pull ../full.hg
+ pulling from ../full.hg
+ requesting all changes
+ adding changesets
+ adding manifests
+ adding file changes
+ added 9 changesets with 7 changes to 4 files (+1 heads)
+ (run 'hg heads' to see heads, 'hg merge' to merge)
+
+Rollback empty
+
+ $ hg -R empty rollback
+ rolling back to revision -1 (undo pull)
+
+Pull full.hg into empty again (using --cwd)
+
+ $ hg --cwd empty pull ../full.hg
+ pulling from ../full.hg
+ requesting all changes
+ adding changesets
+ adding manifests
+ adding file changes
+ added 9 changesets with 7 changes to 4 files (+1 heads)
+ (run 'hg heads' to see heads, 'hg merge' to merge)
+
+Pull full.hg into test (using -R)
+
+ $ hg -R test pull full.hg
+ pulling from full.hg
+ searching for changes
+ no changes found
+
+Pull full.hg into empty (using -R)
+
+ $ hg -R empty pull full.hg
+ pulling from full.hg
+ searching for changes
+ no changes found
+
+Rollback empty
+
+ $ hg -R empty rollback
+ rolling back to revision -1 (undo pull)
+
+Pull full.hg into empty again (using -R)
+
+ $ hg -R empty pull full.hg
+ pulling from full.hg
+ requesting all changes
+ adding changesets
+ adding manifests
+ adding file changes
+ added 9 changesets with 7 changes to 4 files (+1 heads)
+ (run 'hg heads' to see heads, 'hg merge' to merge)
+
+Log -R full.hg in fresh empty
+
+ $ rm -r empty
+ $ hg init empty
+ $ cd empty
+ $ hg -R bundle://../full.hg log
+ changeset: 8:088ff9d6e1e1
+ tag: tip
+ parent: 3:ac69c658229d
+ user: test
+ date: Mon Jan 12 13:46:40 1970 +0000
+ summary: 0.3m
+
+ changeset: 7:27f57c869697
+ user: test
+ date: Mon Jan 12 13:46:40 1970 +0000
+ summary: 1.3m
+
+ changeset: 6:1e3f6b843bd6
+ user: test
+ date: Mon Jan 12 13:46:40 1970 +0000
+ summary: 1.3
+
+ changeset: 5:024e4e7df376
+ user: test
+ date: Mon Jan 12 13:46:40 1970 +0000
+ summary: 1.2
+
+ changeset: 4:5f4f3ceb285e
+ parent: 0:5649c9d34dd8
+ user: test
+ date: Mon Jan 12 13:46:40 1970 +0000
+ summary: 1.1
+
+ changeset: 3:ac69c658229d
+ user: test
+ date: Mon Jan 12 13:46:40 1970 +0000
+ summary: 0.3
+
+ changeset: 2:d62976ca1e50
+ user: test
+ date: Mon Jan 12 13:46:40 1970 +0000
+ summary: 0.2
+
+ changeset: 1:10b2180f755b
+ user: test
+ date: Mon Jan 12 13:46:40 1970 +0000
+ summary: 0.1
+
+ changeset: 0:5649c9d34dd8
+ user: test
+ date: Mon Jan 12 13:46:40 1970 +0000
+ summary: 0.0
+
+
+Pull ../full.hg into empty (with hook)
+
+ $ echo '[hooks]' >> .hg/hgrc
+ $ echo 'changegroup = python ../printenv.py changegroup' >> .hg/hgrc
+
+doesn't work (yet ?)
+
+hg -R bundle://../full.hg verify
+
+ $ hg pull bundle://../full.hg
+ changegroup hook: HG_NODE=5649c9d34dd87d0ecb5fd39672128376e83b22e1 HG_SOURCE=pull HG_URL=bundle:../full.hg
+ pulling from bundle://../full.hg
+ requesting all changes
+ adding changesets
+ adding manifests
+ adding file changes
+ added 9 changesets with 7 changes to 4 files (+1 heads)
+ (run 'hg heads' to see heads, 'hg merge' to merge)
+
+Rollback empty
+
+ $ hg rollback
+ rolling back to revision -1 (undo pull)
+ $ cd ..
+
+Log -R bundle:empty+full.hg
+
+ $ hg -R bundle:empty+full.hg log --template="{rev} "; echo ""
+ 8 7 6 5 4 3 2 1 0
+
+Pull full.hg into empty again (using -R; with hook)
+
+ $ hg -R empty pull full.hg
+ changegroup hook: HG_NODE=5649c9d34dd87d0ecb5fd39672128376e83b22e1 HG_SOURCE=pull HG_URL=bundle:empty+full.hg
+ pulling from full.hg
+ requesting all changes
+ adding changesets
+ adding manifests
+ adding file changes
+ added 9 changesets with 7 changes to 4 files (+1 heads)
+ (run 'hg heads' to see heads, 'hg merge' to merge)
+
+Create partial clones
+
+ $ rm -r empty
+ $ hg init empty
+ $ hg clone -r 3 test partial
+ requesting all changes
+ adding changesets
+ adding manifests
+ adding file changes
+ added 4 changesets with 4 changes to 1 files
+ updating to branch default
+ 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
+ $ hg clone partial partial2
+ updating to branch default
+ 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
+ $ cd partial
+
+Log -R full.hg in partial
+
+ $ hg -R bundle://../full.hg log
+ changeset: 8:088ff9d6e1e1
+ tag: tip
+ parent: 3:ac69c658229d
+ user: test
+ date: Mon Jan 12 13:46:40 1970 +0000
+ summary: 0.3m
+
+ changeset: 7:27f57c869697
+ user: test
+ date: Mon Jan 12 13:46:40 1970 +0000
+ summary: 1.3m
+
+ changeset: 6:1e3f6b843bd6
+ user: test
+ date: Mon Jan 12 13:46:40 1970 +0000
+ summary: 1.3
+
+ changeset: 5:024e4e7df376
+ user: test
+ date: Mon Jan 12 13:46:40 1970 +0000
+ summary: 1.2
+
+ changeset: 4:5f4f3ceb285e
+ parent: 0:5649c9d34dd8
+ user: test
+ date: Mon Jan 12 13:46:40 1970 +0000
+ summary: 1.1
+
+ changeset: 3:ac69c658229d
+ user: test
+ date: Mon Jan 12 13:46:40 1970 +0000
+ summary: 0.3
+
+ changeset: 2:d62976ca1e50
+ user: test
+ date: Mon Jan 12 13:46:40 1970 +0000
+ summary: 0.2
+
+ changeset: 1:10b2180f755b
+ user: test
+ date: Mon Jan 12 13:46:40 1970 +0000
+ summary: 0.1
+
+ changeset: 0:5649c9d34dd8
+ user: test
+ date: Mon Jan 12 13:46:40 1970 +0000
+ summary: 0.0
+
+
+Incoming full.hg in partial
+
+ $ hg incoming bundle://../full.hg
+ comparing with bundle://../full.hg
+ searching for changes
+ changeset: 4:5f4f3ceb285e
+ parent: 0:5649c9d34dd8
+ user: test
+ date: Mon Jan 12 13:46:40 1970 +0000
+ summary: 1.1
+
+ changeset: 5:024e4e7df376
+ user: test
+ date: Mon Jan 12 13:46:40 1970 +0000
+ summary: 1.2
+
+ changeset: 6:1e3f6b843bd6
+ user: test
+ date: Mon Jan 12 13:46:40 1970 +0000
+ summary: 1.3
+
+ changeset: 7:27f57c869697
+ user: test
+ date: Mon Jan 12 13:46:40 1970 +0000
+ summary: 1.3m
+
+ changeset: 8:088ff9d6e1e1
+ tag: tip
+ parent: 3:ac69c658229d
+ user: test
+ date: Mon Jan 12 13:46:40 1970 +0000
+ summary: 0.3m
+
+
+Outgoing -R full.hg vs partial2 in partial
+
+ $ hg -R bundle://../full.hg outgoing ../partial2
+ comparing with ../partial2
+ searching for changes
+ changeset: 4:5f4f3ceb285e
+ parent: 0:5649c9d34dd8
+ user: test
+ date: Mon Jan 12 13:46:40 1970 +0000
+ summary: 1.1
+
+ changeset: 5:024e4e7df376
+ user: test
+ date: Mon Jan 12 13:46:40 1970 +0000
+ summary: 1.2
+
+ changeset: 6:1e3f6b843bd6
+ user: test
+ date: Mon Jan 12 13:46:40 1970 +0000
+ summary: 1.3
+
+ changeset: 7:27f57c869697
+ user: test
+ date: Mon Jan 12 13:46:40 1970 +0000
+ summary: 1.3m
+
+ changeset: 8:088ff9d6e1e1
+ tag: tip
+ parent: 3:ac69c658229d
+ user: test
+ date: Mon Jan 12 13:46:40 1970 +0000
+ summary: 0.3m
+
+
+Outgoing -R does-not-exist.hg vs partial2 in partial
+
+ $ hg -R bundle://../does-not-exist.hg outgoing ../partial2
+ abort: No such file or directory: ../does-not-exist.hg
+ $ cd ..
+
+Direct clone from bundle (all-history)
+
+ $ hg clone full.hg full-clone
+ requesting all changes
+ adding changesets
+ adding manifests
+ adding file changes
+ added 9 changesets with 7 changes to 4 files (+1 heads)
+ updating to branch default
+ 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
+ $ hg -R full-clone heads
+ changeset: 8:088ff9d6e1e1
+ tag: tip
+ parent: 3:ac69c658229d
+ user: test
+ date: Mon Jan 12 13:46:40 1970 +0000
+ summary: 0.3m
+
+ changeset: 7:27f57c869697
+ user: test
+ date: Mon Jan 12 13:46:40 1970 +0000
+ summary: 1.3m
+
+ $ rm -r full-clone
+
+test for http://mercurial.selenic.com/bts/issue216
+
+Unbundle incremental bundles into fresh empty in one go
+
+ $ rm -r empty
+ $ hg init empty
+ $ hg -R test bundle --base null -r 0 ../0.hg
+ 1 changesets found
+ $ hg -R test bundle --base 0 -r 1 ../1.hg
+ 1 changesets found
+ $ hg -R empty unbundle -u ../0.hg ../1.hg
+ adding changesets
+ adding manifests
+ adding file changes
+ added 1 changesets with 1 changes to 1 files
+ adding changesets
+ adding manifests
+ adding file changes
+ added 1 changesets with 1 changes to 1 files
+ 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
+
+test for 540d1059c802
+
+test for 540d1059c802
+
+ $ hg init orig
+ $ cd orig
+ $ echo foo > foo
+ $ hg add foo
+ $ hg ci -m 'add foo'
+
+ $ hg clone . ../copy
+ updating to branch default
+ 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
+ $ hg tag foo
+
+ $ cd ../copy
+ $ echo >> foo
+ $ hg ci -m 'change foo'
+ $ hg bundle ../bundle.hg ../orig
+ searching for changes
+ 1 changesets found
+
+ $ cd ../orig
+ $ hg incoming ../bundle.hg
+ comparing with ../bundle.hg
+ searching for changes
+ changeset: 2:ed1b79f46b9a
+ tag: tip
+ parent: 0:bbd179dfa0a7
+ user: test
+ date: Thu Jan 01 00:00:00 1970 +0000
+ summary: change foo
+
+ $ cd ..
+
+test for http://mercurial.selenic.com/bts/issue1144
+
+test that verify bundle does not traceback
+
+partial history bundle, fails w/ unkown parent
+
+ $ hg -R bundle.hg verify
+ abort: 00changelog.i@bbd179dfa0a7: unknown parent!
+
+full history bundle, refuses to verify non-local repo
+
+ $ hg -R all.hg verify
+ abort: cannot verify bundle or remote repos
+
+but, regular verify must continue to work
+
+ $ hg -R orig verify
+ checking changesets
+ checking manifests
+ crosschecking files in changesets and manifests
+ checking files
+ 2 files, 2 changesets, 2 total revisions
+
+diff against bundle
+
+ $ hg init b
+ $ cd b
+ $ hg -R ../all.hg diff -r tip
+ diff -r 088ff9d6e1e1 anotherfile
+ --- a/anotherfile Mon Jan 12 13:46:40 1970 +0000
+ +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
+ @@ -1,4 +0,0 @@
+ -0
+ -1
+ -2
+ -3
+ $ cd ..
+
+bundle single branch
+
+ $ hg init branchy
+ $ cd branchy
+ $ echo a >a
+ $ hg ci -Ama
+ adding a
+ $ echo b >b
+ $ hg ci -Amb
+ adding b
+ $ echo b1 >b1
+ $ hg ci -Amb1
+ adding b1
+ $ hg up 0
+ 0 files updated, 0 files merged, 2 files removed, 0 files unresolved
+ $ echo c >c
+ $ hg ci -Amc
+ adding c
+ created new head
+ $ echo c1 >c1
+ $ hg ci -Amc1
+ adding c1
+ $ hg clone -q .#tip part
+
+== bundling via incoming
+
+ $ hg in -R part --bundle incoming.hg --template "{node}\n" .
+ comparing with .
+ searching for changes
+ d2ae7f538514cd87c17547b0de4cea71fe1af9fb
+ 5ece8e77363e2b5269e27c66828b72da29e4341a
+
+== bundling
+
+ $ hg bundle bundle.hg part --debug
+ searching for changes
+ common changesets up to c0025332f9ed
+ 2 changesets found
+ list of changesets:
+ d2ae7f538514cd87c17547b0de4cea71fe1af9fb
+ 5ece8e77363e2b5269e27c66828b72da29e4341a
+ bundling changes: 0 chunks
+ bundling changes: 1 chunks
+ bundling changes: 2 chunks
+ bundling changes: 3 chunks
+ bundling changes: 4 chunks
+ bundling changes: 5 chunks
+ bundling changes: 6 chunks
+ bundling manifests: 0 chunks
+ bundling manifests: 1 chunks
+ bundling manifests: 2 chunks
+ bundling manifests: 3 chunks
+ bundling manifests: 4 chunks
+ bundling manifests: 5 chunks
+ bundling manifests: 6 chunks
+ bundling files: b 0 chunks
+ bundling files: b 1 chunks
+ bundling files: b 2 chunks
+ bundling files: b 3 chunks
+ bundling files: b1 4 chunks
+ bundling files: b1 5 chunks
+ bundling files: b1 6 chunks
+ bundling files: b1 7 chunks
+