diff tests/test-bundle.t @ 11870:33eb803e9343

tests: unify test-bundle
author Martin Geisler <mg@lazybytes.net>
date Sat, 14 Aug 2010 03:16:02 +0200
parents tests/test-bundle@0b999aec64e8
children 4c94b6d0fb1c
line wrap: on
line diff
--- /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
+