tests: unify test-bundle
authorMartin Geisler <mg@lazybytes.net>
Sat, 14 Aug 2010 03:16:02 +0200
changeset 11870 33eb803e9343
parent 11869 36a5e7cb6c8d
child 11871 f22b101e33e4
tests: unify test-bundle
tests/test-bundle
tests/test-bundle.out
tests/test-bundle.t
--- a/tests/test-bundle	Sat Aug 14 03:08:02 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,168 +0,0 @@
-#!/bin/sh
-
-cp "$TESTDIR"/printenv.py .
-
-echo "====== 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
-echo 1 >> afile
-hg commit -m "1.1" -d "1000000 0"
-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
-hg mv afile anotherfile
-hg commit -m "0.3m" -d "1000000 0"
-hg verify
-cd ..
-hg init empty
-
-echo "====== Bundle --all"
-hg -R test bundle --all all.hg
-
-echo "====== Bundle test to full.hg"
-hg -R test bundle full.hg empty
-echo "====== Unbundle full.hg in test"
-hg -R test unbundle full.hg
-echo "====== Verify empty"
-hg -R empty heads
-hg -R empty verify
-
-echo "====== Pull full.hg into test (using --cwd)"
-hg --cwd test pull ../full.hg
-echo "====== Pull full.hg into empty (using --cwd)"
-hg --cwd empty pull ../full.hg
-echo "====== Rollback empty"
-hg -R empty rollback
-echo "====== Pull full.hg into empty again (using --cwd)"
-hg --cwd empty pull ../full.hg
-
-echo "====== Pull full.hg into test (using -R)"
-hg -R test pull full.hg
-echo "====== Pull full.hg into empty (using -R)"
-hg -R empty pull full.hg
-echo "====== Rollback empty"
-hg -R empty rollback
-echo "====== Pull full.hg into empty again (using -R)"
-hg -R empty pull full.hg
-
-echo "====== Log -R full.hg in fresh empty"
-rm -r empty
-hg init empty
-cd empty
-hg -R bundle://../full.hg log
-
-echo "====== 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
-echo "====== Rollback empty"
-hg rollback
-cd ..
-echo "====== Log -R bundle:empty+full.hg"
-hg -R bundle:empty+full.hg log --template="{rev} "
-echo ""
-echo "====== Pull full.hg into empty again (using -R; with hook)"
-hg -R empty pull full.hg
-
-echo "====== Create partial clones"
-rm -r empty
-hg init empty
-hg clone -r 3 test partial
-hg clone partial partial2
-cd partial
-echo "====== Log -R full.hg in partial"
-hg -R bundle://../full.hg log
-echo "====== Incoming full.hg in partial"
-hg incoming bundle://../full.hg
-echo "====== Outgoing -R full.hg vs partial2 in partial"
-hg -R bundle://../full.hg outgoing ../partial2
-echo "====== Outgoing -R does-not-exist.hg vs partial2 in partial"
-hg -R bundle://../does-not-exist.hg outgoing ../partial2
-cd ..
-
-echo "====== Direct clone from bundle (all-history)"
-hg clone full.hg full-clone
-hg -R full-clone heads
-rm -r full-clone
-
-# test for http://mercurial.selenic.com/bts/issue216
-echo "====== 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
-hg -R test bundle --base 0    -r 1 ../1.hg
-hg -R empty unbundle -u ../0.hg ../1.hg
-
-# test for 540d1059c802
-echo "====== test for 540d1059c802"
-hg init orig
-cd orig
-echo foo > foo
-hg add foo
-hg ci -m 'add foo'
-
-hg clone . ../copy
-hg tag foo
-
-cd ../copy
-echo >> foo
-hg ci -m 'change foo'
-hg bundle ../bundle.hg ../orig
-
-cd ../orig
-hg incoming ../bundle.hg
-cd ..
-
-# test for http://mercurial.selenic.com/bts/issue1144
-echo "===== test that verify bundle does not traceback"
-# partial history bundle, fails w/ unkown parent
-hg -R bundle.hg verify
-# full history bundle, refuses to verify non-local repo
-hg -R all.hg verify
-# but, regular verify must continue to work
-hg -R orig verify
-
-echo "====== diff against bundle"
-hg init b
-cd b
-hg -R ../all.hg diff -r tip
-cd ..
-
-echo "====== bundle single branch"
-hg init branchy
-cd branchy
-echo a >a
-hg ci -Ama
-echo b >b
-hg ci -Amb
-echo b1 >b1
-hg ci -Amb1
-hg up 0
-echo c >c
-hg ci -Amc
-echo c1 >c1
-hg ci -Amc1
-hg clone -q .#tip part
-echo "== bundling via incoming"
-hg in -R part --bundle incoming.hg --template "{node}\n" .
-echo "== bundling"
-hg bundle bundle.hg part --debug
-
--- a/tests/test-bundle.out	Sat Aug 14 03:08:02 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,365 +0,0 @@
-====== Setting up test
-1 files updated, 0 files merged, 0 files removed, 0 files unresolved
-created new head
-1 files updated, 0 files merged, 2 files removed, 0 files unresolved
-checking changesets
-checking manifests
-crosschecking files in changesets and manifests
-checking files
-4 files, 9 changesets, 7 total revisions
-====== Bundle --all
-9 changesets found
-====== Bundle test to full.hg
-searching for changes
-9 changesets found
-====== Unbundle full.hg in test
-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
-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)
-pulling from ../full.hg
-searching for changes
-no changes found
-====== Pull full.hg into empty (using --cwd)
-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
-rolling back to revision -1 (undo pull)
-====== Pull full.hg into empty again (using --cwd)
-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)
-pulling from full.hg
-searching for changes
-no changes found
-====== Pull full.hg into empty (using -R)
-pulling from full.hg
-searching for changes
-no changes found
-====== Rollback empty
-rolling back to revision -1 (undo pull)
-====== Pull full.hg into empty again (using -R)
-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
-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)
-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
-rolling back to revision -1 (undo pull)
-====== Log -R bundle:empty+full.hg
-8 7 6 5 4 3 2 1 0 
-====== Pull full.hg into empty again (using -R; with hook)
-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
-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
-updating to branch default
-1 files updated, 0 files merged, 0 files removed, 0 files unresolved
-====== Log -R full.hg in partial
-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
-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
-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
-abort: No such file or directory: ../does-not-exist.hg
-====== Direct clone from bundle (all-history)
-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
-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
-
-====== Unbundle incremental bundles into fresh empty in one go
-1 changesets found
-1 changesets found
-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
-updating to branch default
-1 files updated, 0 files merged, 0 files removed, 0 files unresolved
-searching for changes
-1 changesets found
-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
-
-===== test that verify bundle does not traceback
-abort: 00changelog.i@bbd179dfa0a7: unknown parent!
-abort: cannot verify bundle or remote repos
-checking changesets
-checking manifests
-crosschecking files in changesets and manifests
-checking files
-2 files, 2 changesets, 2 total revisions
-====== diff against bundle
-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
-====== bundle single branch
-adding a
-adding b
-adding b1
-0 files updated, 0 files merged, 2 files removed, 0 files unresolved
-adding c
-created new head
-adding c1
-== bundling via incoming
-comparing with .
-searching for changes
-d2ae7f538514cd87c17547b0de4cea71fe1af9fb
-5ece8e77363e2b5269e27c66828b72da29e4341a
-== bundling
-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
--- /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
+