test-bundle.t
853 lines
| 21.1 KiB
| text/troff
|
Tads3Lexer
/ tests / test-bundle.t
|
r26923 | |||
$ cat << EOF >> $HGRCPATH | ||||
> [format] | ||||
> usegeneraldelta=yes | ||||
> EOF | ||||
|
r11870 | Setting up test | ||
$ hg init test | ||||
$ cd test | ||||
$ echo 0 > afile | ||||
$ hg add afile | ||||
|
r12156 | $ hg commit -m "0.0" | ||
|
r11870 | $ echo 1 >> afile | ||
|
r12156 | $ hg commit -m "0.1" | ||
|
r11870 | $ echo 2 >> afile | ||
|
r12156 | $ hg commit -m "0.2" | ||
|
r11870 | $ echo 3 >> afile | ||
|
r12156 | $ hg commit -m "0.3" | ||
|
r11870 | $ hg update -C 0 | ||
1 files updated, 0 files merged, 0 files removed, 0 files unresolved | ||||
$ echo 1 >> afile | ||||
|
r12156 | $ hg commit -m "1.1" | ||
|
r11870 | created new head | ||
$ echo 2 >> afile | ||||
|
r12156 | $ hg commit -m "1.2" | ||
|
r11870 | $ echo "a line" > fred | ||
$ echo 3 >> afile | ||||
$ hg add fred | ||||
|
r12156 | $ hg commit -m "1.3" | ||
|
r11870 | $ hg mv afile adifferentfile | ||
|
r12156 | $ hg commit -m "1.3m" | ||
|
r11870 | $ hg update -C 3 | ||
1 files updated, 0 files merged, 2 files removed, 0 files unresolved | ||||
$ hg mv afile anotherfile | ||||
|
r12156 | $ hg commit -m "0.3m" | ||
|
r11870 | $ 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 | ||||
|
r15991 | Bundle and phase | ||
$ hg -R test phase --force --secret 0 | ||||
$ hg -R test bundle phase.hg empty | ||||
searching for changes | ||||
|
r15993 | no changes found (ignored 9 secret changesets) | ||
|
r15991 | [1] | ||
$ hg -R test phase --draft -r 'head()' | ||||
|
r11870 | 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 | ||||
|
r12316 | [1] | ||
|
r11870 | $ 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 | ||||
|
r20576 | Verify that there are no leaked temporary files after pull (issue2797) | ||
$ ls test/.hg | grep .hg10un | ||||
[1] | ||||
|
r11870 | 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 | ||||
|
r13446 | repository tip rolled back to revision -1 (undo pull) | ||
|
r11870 | |||
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 | ||||
|
r13446 | repository tip rolled back to revision -1 (undo pull) | ||
|
r11870 | |||
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 | ||||
|
r12156 | changeset: 8:aa35859c02ea | ||
|
r11870 | tag: tip | ||
|
r12156 | parent: 3:eebf5a27f8ca | ||
|
r11870 | user: test | ||
|
r12156 | date: Thu Jan 01 00:00:00 1970 +0000 | ||
|
r11870 | summary: 0.3m | ||
|
r12156 | changeset: 7:a6a34bfa0076 | ||
|
r11870 | user: test | ||
|
r12156 | date: Thu Jan 01 00:00:00 1970 +0000 | ||
|
r11870 | summary: 1.3m | ||
|
r12156 | changeset: 6:7373c1169842 | ||
|
r11870 | user: test | ||
|
r12156 | date: Thu Jan 01 00:00:00 1970 +0000 | ||
|
r11870 | summary: 1.3 | ||
|
r12156 | changeset: 5:1bb50a9436a7 | ||
|
r11870 | user: test | ||
|
r12156 | date: Thu Jan 01 00:00:00 1970 +0000 | ||
|
r11870 | summary: 1.2 | ||
|
r12156 | changeset: 4:095197eb4973 | ||
parent: 0:f9ee2f85a263 | ||||
|
r11870 | user: test | ||
|
r12156 | date: Thu Jan 01 00:00:00 1970 +0000 | ||
|
r11870 | summary: 1.1 | ||
|
r12156 | changeset: 3:eebf5a27f8ca | ||
|
r11870 | user: test | ||
|
r12156 | date: Thu Jan 01 00:00:00 1970 +0000 | ||
|
r11870 | summary: 0.3 | ||
|
r12156 | changeset: 2:e38ba6f5b7e0 | ||
|
r11870 | user: test | ||
|
r12156 | date: Thu Jan 01 00:00:00 1970 +0000 | ||
|
r11870 | summary: 0.2 | ||
|
r12156 | changeset: 1:34c2bf6b0626 | ||
|
r11870 | user: test | ||
|
r12156 | date: Thu Jan 01 00:00:00 1970 +0000 | ||
|
r11870 | summary: 0.1 | ||
|
r12156 | changeset: 0:f9ee2f85a263 | ||
|
r11870 | user: test | ||
|
r12156 | date: Thu Jan 01 00:00:00 1970 +0000 | ||
|
r11870 | summary: 0.0 | ||
|
r13382 | Make sure bundlerepo doesn't leak tempfiles (issue2491) | ||
$ ls .hg | ||||
00changelog.i | ||||
cache | ||||
requires | ||||
store | ||||
|
r11870 | |||
Pull ../full.hg into empty (with hook) | ||||
|
r30234 | $ cat >> .hg/hgrc <<EOF | ||
> [hooks] | ||||
> changegroup = sh -c "printenv.py changegroup" | ||||
> EOF | ||||
|
r11870 | |||
doesn't work (yet ?) | ||||
hg -R bundle://../full.hg verify | ||||
$ hg pull bundle://../full.hg | ||||
|
r13818 | pulling from bundle:../full.hg | ||
|
r11870 | requesting all changes | ||
adding changesets | ||||
adding manifests | ||||
adding file changes | ||||
added 9 changesets with 7 changes to 4 files (+1 heads) | ||||
|
r31741 | changegroup hook: HG_NODE=f9ee2f85a263049e9ae6d37a0e67e96194ffb735 HG_NODE_LAST=aa35859c02ea8bd48da5da68cd2740ac71afcbaf HG_SOURCE=pull HG_TXNID=TXN:$ID$ HG_URL=bundle:../full.hg | ||
|
r11870 | (run 'hg heads' to see heads, 'hg merge' to merge) | ||
Rollback empty | ||||
$ hg rollback | ||||
|
r13446 | repository tip rolled back to revision -1 (undo pull) | ||
|
r11870 | $ 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 | ||||
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) | ||||
|
r31741 | changegroup hook: HG_NODE=f9ee2f85a263049e9ae6d37a0e67e96194ffb735 HG_NODE_LAST=aa35859c02ea8bd48da5da68cd2740ac71afcbaf HG_SOURCE=pull HG_TXNID=TXN:$ID$ HG_URL=bundle:empty+full.hg | ||
|
r11870 | (run 'hg heads' to see heads, 'hg merge' to merge) | ||
|
r26757 | Cannot produce streaming clone bundles with "hg bundle" | ||
$ hg -R test bundle -t packed1 packed.hg | ||||
abort: packed bundles cannot be produced by "hg bundle" | ||||
|
r28961 | (use 'hg debugcreatestreamclonebundle') | ||
|
r26757 | [255] | ||
packed1 is produced properly | ||||
$ hg -R test debugcreatestreamclonebundle packed.hg | ||||
|
r30792 | writing 2664 bytes for 6 files | ||
|
r26923 | bundle requirements: generaldelta, revlogv1 | ||
|
r26757 | |||
$ f -B 64 --size --sha1 --hexdump packed.hg | ||||
|
r30792 | packed.hg: size=2827, sha1=9d14cb90c66a21462d915ab33656f38b9deed686 | ||
|
r26757 | 0000: 48 47 53 31 55 4e 00 00 00 00 00 00 00 06 00 00 |HGS1UN..........| | ||
|
r30792 | 0010: 00 00 00 00 0a 68 00 16 67 65 6e 65 72 61 6c 64 |.....h..generald| | ||
|
r26923 | 0020: 65 6c 74 61 2c 72 65 76 6c 6f 67 76 31 00 64 61 |elta,revlogv1.da| | ||
0030: 74 61 2f 61 64 69 66 66 65 72 65 6e 74 66 69 6c |ta/adifferentfil| | ||||
|
r26757 | |||
|
r27885 | $ hg debugbundle --spec packed.hg | ||
none-packed1;requirements%3Dgeneraldelta%2Crevlogv1 | ||||
|
r30013 | generaldelta requirement is not listed in stream clone bundles unless used | ||
|
r26757 | |||
|
r30013 | $ hg --config format.usegeneraldelta=false init testnongd | ||
$ cd testnongd | ||||
|
r26757 | $ touch foo | ||
$ hg -q commit -A -m initial | ||||
$ cd .. | ||||
|
r30013 | $ hg -R testnongd debugcreatestreamclonebundle packednongd.hg | ||
|
r26757 | writing 301 bytes for 3 files | ||
|
r30013 | bundle requirements: revlogv1 | ||
|
r26757 | |||
|
r30013 | $ f -B 64 --size --sha1 --hexdump packednongd.hg | ||
packednongd.hg: size=383, sha1=1d9c230238edd5d38907100b729ba72b1831fe6f | ||||
|
r26757 | 0000: 48 47 53 31 55 4e 00 00 00 00 00 00 00 03 00 00 |HGS1UN..........| | ||
|
r30013 | 0010: 00 00 00 00 01 2d 00 09 72 65 76 6c 6f 67 76 31 |.....-..revlogv1| | ||
0020: 00 64 61 74 61 2f 66 6f 6f 2e 69 00 36 34 0a 00 |.data/foo.i.64..| | ||||
0030: 01 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| | ||||
|
r26757 | |||
|
r30013 | $ hg debugbundle --spec packednongd.hg | ||
none-packed1;requirements%3Drevlogv1 | ||||
|
r27885 | |||
|
r26758 | Unpacking packed1 bundles with "hg unbundle" isn't allowed | ||
$ hg init packed | ||||
$ hg -R packed unbundle packed.hg | ||||
abort: packed bundles cannot be applied with "hg unbundle" | ||||
(use "hg debugapplystreamclonebundle") | ||||
[255] | ||||
packed1 can be consumed from debug command | ||||
|
r29919 | (this also confirms that streamclone-ed changes are visible via | ||
@filecache properties to in-process procedures before closing | ||||
transaction) | ||||
$ cat > $TESTTMP/showtip.py <<EOF | ||||
> from __future__ import absolute_import | ||||
> | ||||
> def showtip(ui, repo, hooktype, **kwargs): | ||||
> ui.warn('%s: %s\n' % (hooktype, repo['tip'].hex()[:12])) | ||||
> | ||||
> def reposetup(ui, repo): | ||||
> # this confirms (and ensures) that (empty) 00changelog.i | ||||
> # before streamclone is already cached as repo.changelog | ||||
> ui.setconfig('hooks', 'pretxnopen.showtip', showtip) | ||||
> | ||||
> # this confirms that streamclone-ed changes are visible to | ||||
> # in-process procedures before closing transaction | ||||
> ui.setconfig('hooks', 'pretxnclose.showtip', showtip) | ||||
> | ||||
> # this confirms that streamclone-ed changes are still visible | ||||
> # after closing transaction | ||||
> ui.setconfig('hooks', 'txnclose.showtip', showtip) | ||||
> EOF | ||||
$ cat >> $HGRCPATH <<EOF | ||||
> [extensions] | ||||
> showtip = $TESTTMP/showtip.py | ||||
> EOF | ||||
|
r26758 | $ hg -R packed debugapplystreamclonebundle packed.hg | ||
|
r26923 | 6 files to transfer, 2.60 KB of data | ||
|
r29919 | pretxnopen: 000000000000 | ||
pretxnclose: aa35859c02ea | ||||
|
r26923 | transferred 2.60 KB in *.* seconds (* */sec) (glob) | ||
|
r29919 | txnclose: aa35859c02ea | ||
(for safety, confirm visibility of streamclone-ed changes by another | ||||
process, too) | ||||
$ hg -R packed tip -T "{node|short}\n" | ||||
aa35859c02ea | ||||
$ cat >> $HGRCPATH <<EOF | ||||
> [extensions] | ||||
> showtip = ! | ||||
> EOF | ||||
|
r26758 | |||
Does not work on non-empty repo | ||||
$ hg -R packed debugapplystreamclonebundle packed.hg | ||||
abort: cannot apply stream clone bundle on non-empty repo | ||||
[255] | ||||
|
r11870 | Create partial clones | ||
$ rm -r empty | ||||
$ hg init empty | ||||
$ hg clone -r 3 test partial | ||||
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 | ||||
|
r23632 | $ hg -R bundle://../full.hg log -T phases | ||
|
r12156 | changeset: 8:aa35859c02ea | ||
|
r11870 | tag: tip | ||
|
r23632 | phase: draft | ||
|
r12156 | parent: 3:eebf5a27f8ca | ||
|
r11870 | user: test | ||
|
r12156 | date: Thu Jan 01 00:00:00 1970 +0000 | ||
|
r11870 | summary: 0.3m | ||
|
r12156 | changeset: 7:a6a34bfa0076 | ||
|
r23632 | phase: draft | ||
|
r11870 | user: test | ||
|
r12156 | date: Thu Jan 01 00:00:00 1970 +0000 | ||
|
r11870 | summary: 1.3m | ||
|
r12156 | changeset: 6:7373c1169842 | ||
|
r23632 | phase: draft | ||
|
r11870 | user: test | ||
|
r12156 | date: Thu Jan 01 00:00:00 1970 +0000 | ||
|
r11870 | summary: 1.3 | ||
|
r12156 | changeset: 5:1bb50a9436a7 | ||
|
r23632 | phase: draft | ||
|
r11870 | user: test | ||
|
r12156 | date: Thu Jan 01 00:00:00 1970 +0000 | ||
|
r11870 | summary: 1.2 | ||
|
r12156 | changeset: 4:095197eb4973 | ||
|
r23632 | phase: draft | ||
|
r12156 | parent: 0:f9ee2f85a263 | ||
|
r11870 | user: test | ||
|
r12156 | date: Thu Jan 01 00:00:00 1970 +0000 | ||
|
r11870 | summary: 1.1 | ||
|
r12156 | changeset: 3:eebf5a27f8ca | ||
|
r23632 | phase: public | ||
|
r11870 | user: test | ||
|
r12156 | date: Thu Jan 01 00:00:00 1970 +0000 | ||
|
r11870 | summary: 0.3 | ||
|
r12156 | changeset: 2:e38ba6f5b7e0 | ||
|
r23632 | phase: public | ||
|
r11870 | user: test | ||
|
r12156 | date: Thu Jan 01 00:00:00 1970 +0000 | ||
|
r11870 | summary: 0.2 | ||
|
r12156 | changeset: 1:34c2bf6b0626 | ||
|
r23632 | phase: public | ||
|
r11870 | user: test | ||
|
r12156 | date: Thu Jan 01 00:00:00 1970 +0000 | ||
|
r11870 | summary: 0.1 | ||
|
r12156 | changeset: 0:f9ee2f85a263 | ||
|
r23632 | phase: public | ||
|
r11870 | user: test | ||
|
r12156 | date: Thu Jan 01 00:00:00 1970 +0000 | ||
|
r11870 | summary: 0.0 | ||
Incoming full.hg in partial | ||||
$ hg incoming bundle://../full.hg | ||||
|
r13818 | comparing with bundle:../full.hg | ||
|
r11870 | searching for changes | ||
|
r12156 | changeset: 4:095197eb4973 | ||
parent: 0:f9ee2f85a263 | ||||
|
r11870 | user: test | ||
|
r12156 | date: Thu Jan 01 00:00:00 1970 +0000 | ||
|
r11870 | summary: 1.1 | ||
|
r12156 | changeset: 5:1bb50a9436a7 | ||
|
r11870 | user: test | ||
|
r12156 | date: Thu Jan 01 00:00:00 1970 +0000 | ||
|
r11870 | summary: 1.2 | ||
|
r12156 | changeset: 6:7373c1169842 | ||
|
r11870 | user: test | ||
|
r12156 | date: Thu Jan 01 00:00:00 1970 +0000 | ||
|
r11870 | summary: 1.3 | ||
|
r12156 | changeset: 7:a6a34bfa0076 | ||
|
r11870 | user: test | ||
|
r12156 | date: Thu Jan 01 00:00:00 1970 +0000 | ||
|
r11870 | summary: 1.3m | ||
|
r12156 | changeset: 8:aa35859c02ea | ||
|
r11870 | tag: tip | ||
|
r12156 | parent: 3:eebf5a27f8ca | ||
|
r11870 | user: test | ||
|
r12156 | date: Thu Jan 01 00:00:00 1970 +0000 | ||
|
r11870 | summary: 0.3m | ||
Outgoing -R full.hg vs partial2 in partial | ||||
$ hg -R bundle://../full.hg outgoing ../partial2 | ||||
comparing with ../partial2 | ||||
searching for changes | ||||
|
r12156 | changeset: 4:095197eb4973 | ||
parent: 0:f9ee2f85a263 | ||||
|
r11870 | user: test | ||
|
r12156 | date: Thu Jan 01 00:00:00 1970 +0000 | ||
|
r11870 | summary: 1.1 | ||
|
r12156 | changeset: 5:1bb50a9436a7 | ||
|
r11870 | user: test | ||
|
r12156 | date: Thu Jan 01 00:00:00 1970 +0000 | ||
|
r11870 | summary: 1.2 | ||
|
r12156 | changeset: 6:7373c1169842 | ||
|
r11870 | user: test | ||
|
r12156 | date: Thu Jan 01 00:00:00 1970 +0000 | ||
|
r11870 | summary: 1.3 | ||
|
r12156 | changeset: 7:a6a34bfa0076 | ||
|
r11870 | user: test | ||
|
r12156 | date: Thu Jan 01 00:00:00 1970 +0000 | ||
|
r11870 | summary: 1.3m | ||
|
r12156 | changeset: 8:aa35859c02ea | ||
|
r11870 | tag: tip | ||
|
r12156 | parent: 3:eebf5a27f8ca | ||
|
r11870 | user: test | ||
|
r12156 | date: Thu Jan 01 00:00:00 1970 +0000 | ||
|
r11870 | summary: 0.3m | ||
Outgoing -R does-not-exist.hg vs partial2 in partial | ||||
$ hg -R bundle://../does-not-exist.hg outgoing ../partial2 | ||||
|
r16903 | abort: *../does-not-exist.hg* (glob) | ||
|
r12316 | [255] | ||
|
r11870 | $ cd .. | ||
|
r17015 | hide outer repo | ||
$ hg init | ||||
|
r11870 | 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 | ||||
|
r12156 | changeset: 8:aa35859c02ea | ||
|
r11870 | tag: tip | ||
|
r12156 | parent: 3:eebf5a27f8ca | ||
|
r11870 | user: test | ||
|
r12156 | date: Thu Jan 01 00:00:00 1970 +0000 | ||
|
r11870 | summary: 0.3m | ||
|
r12156 | changeset: 7:a6a34bfa0076 | ||
|
r11870 | user: test | ||
|
r12156 | date: Thu Jan 01 00:00:00 1970 +0000 | ||
|
r11870 | summary: 1.3m | ||
$ rm -r full-clone | ||||
|
r13053 | When cloning from a non-copiable repository into '', do not | ||
|
r22183 | recurse infinitely (issue2528) | ||
|
r13053 | |||
$ hg clone full.hg '' | ||||
|
r17159 | abort: empty destination path is not valid | ||
|
r13053 | [255] | ||
|
r26420 | test for https://bz.mercurial-scm.org/216 | ||
|
r11870 | |||
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 | ||||
|
r17913 | View full contents of the bundle | ||
$ hg -R test bundle --base null -r 3 ../partial.hg | ||||
4 changesets found | ||||
$ cd test | ||||
$ hg -R ../../partial.hg log -r "bundle()" | ||||
changeset: 0:f9ee2f85a263 | ||||
user: test | ||||
date: Thu Jan 01 00:00:00 1970 +0000 | ||||
summary: 0.0 | ||||
changeset: 1:34c2bf6b0626 | ||||
user: test | ||||
date: Thu Jan 01 00:00:00 1970 +0000 | ||||
summary: 0.1 | ||||
changeset: 2:e38ba6f5b7e0 | ||||
user: test | ||||
date: Thu Jan 01 00:00:00 1970 +0000 | ||||
summary: 0.2 | ||||
changeset: 3:eebf5a27f8ca | ||||
user: test | ||||
date: Thu Jan 01 00:00:00 1970 +0000 | ||||
summary: 0.3 | ||||
$ cd .. | ||||
|
r11870 | 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 .. | ||||
|
r13826 | test bundle with # in the filename (issue2154): | ||
$ cp bundle.hg 'test#bundle.hg' | ||||
$ cd orig | ||||
$ hg incoming '../test#bundle.hg' | ||||
comparing with ../test | ||||
abort: unknown revision 'bundle.hg'! | ||||
[255] | ||||
note that percent encoding is not handled: | ||||
$ hg incoming ../test%23bundle.hg | ||||
abort: repository ../test%23bundle.hg not found! | ||||
[255] | ||||
$ cd .. | ||||
|
r18701 | test to bundle revisions on the newly created branch (issue3828): | ||
$ hg -q clone -U test test-clone | ||||
$ cd test | ||||
$ hg -q branch foo | ||||
$ hg commit -m "create foo branch" | ||||
$ hg -q outgoing ../test-clone | ||||
9:b4f5acb1ee27 | ||||
$ hg -q bundle --branch foo foo.hg ../test-clone | ||||
$ hg -R foo.hg -q log -r "bundle()" | ||||
9:b4f5acb1ee27 | ||||
$ cd .. | ||||
|
r26420 | test for https://bz.mercurial-scm.org/1144 | ||
|
r11870 | |||
test that verify bundle does not traceback | ||||
|
r21024 | partial history bundle, fails w/ unknown parent | ||
|
r11870 | |||
$ hg -R bundle.hg verify | ||||
abort: 00changelog.i@bbd179dfa0a7: unknown parent! | ||||
|
r12316 | [255] | ||
|
r11870 | |||
full history bundle, refuses to verify non-local repo | ||||
$ hg -R all.hg verify | ||||
abort: cannot verify bundle or remote repos | ||||
|
r12316 | [255] | ||
|
r11870 | |||
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 | ||||
|
r12156 | diff -r aa35859c02ea anotherfile | ||
--- a/anotherfile Thu Jan 01 00:00:00 1970 +0000 | ||||
|
r11870 | +++ /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 | ||||
|
r16736 | $ echo x >x | ||
|
r11870 | $ hg ci -Ama | ||
adding a | ||||
|
r16736 | adding x | ||
$ echo c >c | ||||
$ echo xx >x | ||||
$ hg ci -Amc | ||||
adding c | ||||
$ echo c1 >c1 | ||||
$ hg ci -Amc1 | ||||
adding c1 | ||||
$ hg up 0 | ||||
1 files updated, 0 files merged, 2 files removed, 0 files unresolved | ||||
|
r11870 | $ echo b >b | ||
$ hg ci -Amb | ||||
adding b | ||||
|
r16736 | created new head | ||
|
r11870 | $ echo b1 >b1 | ||
|
r16736 | $ echo xx >x | ||
|
r11870 | $ hg ci -Amb1 | ||
adding b1 | ||||
|
r16736 | $ hg clone -q -r2 . part | ||
|
r11870 | |||
== bundling via incoming | ||||
$ hg in -R part --bundle incoming.hg --template "{node}\n" . | ||||
comparing with . | ||||
searching for changes | ||||
|
r16736 | 1a38c1b849e8b70c756d2d80b0b9a3ac0b7ea11a | ||
057f4db07f61970e1c11e83be79e9d08adc4dc31 | ||||
|
r11870 | |||
== bundling | ||||
|
r25125 | $ hg bundle bundle.hg part --debug --config progress.debug=true | ||
|
r14164 | query 1; heads | ||
|
r11870 | searching for changes | ||
|
r14164 | all remote heads known locally | ||
|
r11870 | 2 changesets found | ||
list of changesets: | ||||
|
r16736 | 1a38c1b849e8b70c756d2d80b0b9a3ac0b7ea11a | ||
057f4db07f61970e1c11e83be79e9d08adc4dc31 | ||||
|
r26923 | bundle2-output-bundle: "HG20", (1 params) 1 parts total | ||
|
r29593 | bundle2-output-part: "changegroup" (params: 1 mandatory 1 advisory) streamed payload | ||
|
r14520 | bundling: 1/2 changesets (50.00%) | ||
bundling: 2/2 changesets (100.00%) | ||||
|
r13116 | bundling: 1/2 manifests (50.00%) | ||
bundling: 2/2 manifests (100.00%) | ||||
|
r16736 | bundling: b 1/3 files (33.33%) | ||
bundling: b1 2/3 files (66.67%) | ||||
bundling: x 3/3 files (100.00%) | ||||
== Test for issue3441 | ||||
|
r11870 | |||
|
r16736 | $ hg clone -q -r0 . part2 | ||
$ hg -q -R part2 pull bundle.hg | ||||
$ hg -R part2 verify | ||||
checking changesets | ||||
checking manifests | ||||
crosschecking files in changesets and manifests | ||||
checking files | ||||
4 files, 3 changesets, 5 total revisions | ||||
|
r16913 | |||
|
r27911 | == Test bundling no commits | ||
$ hg bundle -r 'public()' no-output.hg | ||||
abort: no commits to bundle | ||||
[255] | ||||
|
r28714 | |||
$ cd .. | ||||
When user merges to the revision existing only in the bundle, | ||||
it should show warning that second parent of the working | ||||
directory does not exist | ||||
$ hg init update2bundled | ||||
$ cd update2bundled | ||||
$ cat <<EOF >> .hg/hgrc | ||||
> [extensions] | ||||
> strip = | ||||
> EOF | ||||
$ echo "aaa" >> a | ||||
$ hg commit -A -m 0 | ||||
adding a | ||||
$ echo "bbb" >> b | ||||
$ hg commit -A -m 1 | ||||
adding b | ||||
$ echo "ccc" >> c | ||||
$ hg commit -A -m 2 | ||||
adding c | ||||
$ hg update -r 1 | ||||
0 files updated, 0 files merged, 1 files removed, 0 files unresolved | ||||
$ echo "ddd" >> d | ||||
$ hg commit -A -m 3 | ||||
adding d | ||||
created new head | ||||
$ hg update -r 2 | ||||
1 files updated, 0 files merged, 1 files removed, 0 files unresolved | ||||
$ hg log -G | ||||
o changeset: 3:8bd3e1f196af | ||||
| tag: tip | ||||
| parent: 1:a01eca7af26d | ||||
| user: test | ||||
| date: Thu Jan 01 00:00:00 1970 +0000 | ||||
| summary: 3 | ||||
| | ||||
| @ changeset: 2:4652c276ac4f | ||||
|/ user: test | ||||
| date: Thu Jan 01 00:00:00 1970 +0000 | ||||
| summary: 2 | ||||
| | ||||
o changeset: 1:a01eca7af26d | ||||
| user: test | ||||
| date: Thu Jan 01 00:00:00 1970 +0000 | ||||
| summary: 1 | ||||
| | ||||
o changeset: 0:4fe08cd4693e | ||||
user: test | ||||
date: Thu Jan 01 00:00:00 1970 +0000 | ||||
summary: 0 | ||||
$ hg bundle --base 1 -r 3 ../update2bundled.hg | ||||
1 changesets found | ||||
$ hg strip -r 3 | ||||
saved backup bundle to $TESTTMP/update2bundled/.hg/strip-backup/8bd3e1f196af-017e56d8-backup.hg (glob) | ||||
$ hg merge -R ../update2bundled.hg -r 3 | ||||
setting parent to node 8bd3e1f196af289b2b121be08031e76d7ae92098 that only exists in the bundle | ||||
1 files updated, 0 files merged, 0 files removed, 0 files unresolved | ||||
(branch merge, don't forget to commit) | ||||
When user updates to the revision existing only in the bundle, | ||||
it should show warning | ||||
$ hg update -R ../update2bundled.hg --clean -r 3 | ||||
setting parent to node 8bd3e1f196af289b2b121be08031e76d7ae92098 that only exists in the bundle | ||||
1 files updated, 0 files merged, 1 files removed, 0 files unresolved | ||||
When user updates to the revision existing in the local repository | ||||
the warning shouldn't be emitted | ||||
$ hg update -R ../update2bundled.hg -r 0 | ||||
0 files updated, 0 files merged, 2 files removed, 0 files unresolved | ||||