test-bundle.t
951 lines
| 24.5 KiB
| text/troff
|
Tads3Lexer
/ tests / test-bundle.t
|
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 | ||||
|
r39525 | checked 9 changesets with 7 changes to 4 files | ||
|
r11870 | $ 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 | ||||
|
r39525 | checked 0 changesets with 0 changes to 0 files | ||
|
r11870 | |||
|
r37444 | #if repobundlerepo | ||
|
r11870 | 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) | ||||
|
r39516 | new changesets f9ee2f85a263:aa35859c02ea (9 drafts) | ||
|
r11870 | (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) | ||||
|
r39516 | new changesets f9ee2f85a263:aa35859c02ea (9 drafts) | ||
|
r11870 | (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) | ||||
|
r39516 | new changesets f9ee2f85a263:aa35859c02ea (9 drafts) | ||
|
r11870 | (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 | ||||
|
r40825 | wcache | ||
|
r11870 | |||
Pull ../full.hg into empty (with hook) | ||||
|
r30234 | $ cat >> .hg/hgrc <<EOF | ||
> [hooks] | ||||
|
r41786 | > changegroup = sh -c "printenv.py --line changegroup" | ||
|
r30234 | > EOF | ||
|
r11870 | |||
doesn't work (yet ?) | ||||
|
r41878 | NOTE: msys is mangling the URL below | ||
|
r11870 | |||
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) | ||||
|
r39516 | new changesets f9ee2f85a263:aa35859c02ea (9 drafts) | ||
|
r41786 | changegroup hook: HG_HOOKNAME=changegroup | ||
HG_HOOKTYPE=changegroup | ||||
HG_NODE=f9ee2f85a263049e9ae6d37a0e67e96194ffb735 | ||||
HG_NODE_LAST=aa35859c02ea8bd48da5da68cd2740ac71afcbaf | ||||
HG_SOURCE=pull | ||||
HG_TXNID=TXN:$ID$ | ||||
r42062 | HG_TXNNAME=pull | |||
|
r42095 | bundle:../full.hg (no-msys !) | ||
bundle;../full.hg (msys !) | ||||
|
r41878 | HG_URL=bundle:../full.hg (no-msys !) | ||
HG_URL=bundle;../full.hg (msys !) | ||||
|
r41786 | |||
|
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) | ||||
|
r39516 | new changesets f9ee2f85a263:aa35859c02ea (9 drafts) | ||
|
r41786 | changegroup hook: HG_HOOKNAME=changegroup | ||
HG_HOOKTYPE=changegroup | ||||
HG_NODE=f9ee2f85a263049e9ae6d37a0e67e96194ffb735 | ||||
HG_NODE_LAST=aa35859c02ea8bd48da5da68cd2740ac71afcbaf | ||||
HG_SOURCE=pull | ||||
HG_TXNID=TXN:$ID$ | ||||
r42062 | HG_TXNNAME=pull | |||
bundle:empty+full.hg | ||||
|
r41786 | HG_URL=bundle:empty+full.hg | ||
|
r11870 | (run 'hg heads' to see heads, 'hg merge' to merge) | ||
|
r37444 | #endif | ||
|
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') | ||
|
r46431 | [10] | ||
|
r26757 | |||
packed1 is produced properly | ||||
|
r37444 | #if reporevlogstore | ||
|
r26757 | $ hg -R test debugcreatestreamclonebundle packed.hg | ||
r47636 | writing 2664 bytes for 6 files (no-zstd !) | |||
writing 2665 bytes for 6 files (zstd !) | ||||
r47646 | bundle requirements: generaldelta, revlogv1, sparserevlog (no-rust !) | |||
bundle requirements: generaldelta, persistent-nodemap, revlogv1, sparserevlog (rust !) | ||||
|
r26757 | |||
$ f -B 64 --size --sha1 --hexdump packed.hg | ||||
r47636 | packed.hg: size=2840, sha1=12bf3eee3eb8a04c503ce2d29b48f0135c7edff5 (no-zstd !) | |||
r47646 | packed.hg: size=2841, sha1=8b645a65f49b0ae43042a9f3da56d4bfdf1c7f99 (zstd no-rust !) | |||
packed.hg: size=2860, sha1=81d7a2e535892cda51e82c200f818de2cca828d3 (rust !) | ||||
|
r26757 | 0000: 48 47 53 31 55 4e 00 00 00 00 00 00 00 06 00 00 |HGS1UN..........| | ||
r47636 | 0010: 00 00 00 00 0a 68 00 23 67 65 6e 65 72 61 6c 64 |.....h.#generald| (no-zstd !) | |||
r47646 | 0020: 65 6c 74 61 2c 72 65 76 6c 6f 67 76 31 2c 73 70 |elta,revlogv1,sp| (no-zstd !) | |||
0030: 61 72 73 65 72 65 76 6c 6f 67 00 64 61 74 61 2f |arserevlog.data/| (no-zstd !) | ||||
0010: 00 00 00 00 0a 69 00 23 67 65 6e 65 72 61 6c 64 |.....i.#generald| (zstd no-rust !) | ||||
0020: 65 6c 74 61 2c 72 65 76 6c 6f 67 76 31 2c 73 70 |elta,revlogv1,sp| (zstd no-rust !) | ||||
0030: 61 72 73 65 72 65 76 6c 6f 67 00 64 61 74 61 2f |arserevlog.data/| (zstd no-rust !) | ||||
0010: 00 00 00 00 0a 69 00 36 67 65 6e 65 72 61 6c 64 |.....i.6generald| (rust !) | ||||
0020: 65 6c 74 61 2c 70 65 72 73 69 73 74 65 6e 74 2d |elta,persistent-| (rust !) | ||||
0030: 6e 6f 64 65 6d 61 70 2c 72 65 76 6c 6f 67 76 31 |nodemap,revlogv1| (rust !) | ||||
|
r26757 | |||
|
r27885 | $ hg debugbundle --spec packed.hg | ||
r47646 | none-packed1;requirements%3Dgeneraldelta%2Crevlogv1%2Csparserevlog (no-rust !) | |||
none-packed1;requirements%3Dgeneraldelta%2Cpersistent-nodemap%2Crevlogv1%2Csparserevlog (rust !) | ||||
|
r27885 | |||
|
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 | ||
r47646 | bundle requirements: revlogv1 (no-rust !) | |||
bundle requirements: persistent-nodemap, revlogv1 (rust !) | ||||
|
r26757 | |||
|
r30013 | $ f -B 64 --size --sha1 --hexdump packednongd.hg | ||
r47646 | packednongd.hg: size=383, sha1=1d9c230238edd5d38907100b729ba72b1831fe6f (no-rust !) | |||
packednongd.hg: size=402, sha1=d3cc1417f0e8142cf9340aaaa520b660ad3ec3ea (rust !) | ||||
|
r26757 | 0000: 48 47 53 31 55 4e 00 00 00 00 00 00 00 03 00 00 |HGS1UN..........| | ||
r47646 | 0010: 00 00 00 00 01 2d 00 09 72 65 76 6c 6f 67 76 31 |.....-..revlogv1| (no-rust !) | |||
0020: 00 64 61 74 61 2f 66 6f 6f 2e 69 00 36 34 0a 00 |.data/foo.i.64..| (no-rust !) | ||||
0030: 01 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| (no-rust !) | ||||
0010: 00 00 00 00 01 2d 00 1c 70 65 72 73 69 73 74 65 |.....-..persiste| (rust !) | ||||
0020: 6e 74 2d 6e 6f 64 65 6d 61 70 2c 72 65 76 6c 6f |nt-nodemap,revlo| (rust !) | ||||
0030: 67 76 31 00 64 61 74 61 2f 66 6f 6f 2e 69 00 36 |gv1.data/foo.i.6| (rust !) | ||||
|
r26757 | |||
|
r30013 | $ hg debugbundle --spec packednongd.hg | ||
r47646 | none-packed1;requirements%3Drevlogv1 (no-rust !) | |||
none-packed1;requirements%3Dpersistent-nodemap%2Crevlogv1 (rust !) | ||||
|
r27885 | |||
|
r32745 | Warning emitted when packed bundles contain secret changesets | ||
$ hg init testsecret | ||||
$ cd testsecret | ||||
$ touch foo | ||||
$ hg -q commit -A -m initial | ||||
$ hg phase --force --secret -r . | ||||
$ cd .. | ||||
$ hg -R testsecret debugcreatestreamclonebundle packedsecret.hg | ||||
(warning: stream clone bundle will contain secret revisions) | ||||
writing 301 bytes for 3 files | ||||
r47646 | bundle requirements: generaldelta, revlogv1, sparserevlog (no-rust !) | |||
bundle requirements: generaldelta, persistent-nodemap, revlogv1, sparserevlog (rust !) | ||||
|
r32745 | |||
|
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") | ||||
|
r46431 | [10] | ||
|
r26758 | |||
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): | ||||
|
r38615 | > ui.warn(b'%s: %s\n' % (hooktype, repo[b'tip'].hex()[:12])) | ||
|
r29919 | > | ||
> def reposetup(ui, repo): | ||||
> # this confirms (and ensures) that (empty) 00changelog.i | ||||
> # before streamclone is already cached as repo.changelog | ||||
|
r38615 | > ui.setconfig(b'hooks', b'pretxnopen.showtip', showtip) | ||
|
r29919 | > | ||
> # this confirms that streamclone-ed changes are visible to | ||||
> # in-process procedures before closing transaction | ||||
|
r38615 | > ui.setconfig(b'hooks', b'pretxnclose.showtip', showtip) | ||
|
r29919 | > | ||
> # this confirms that streamclone-ed changes are still visible | ||||
> # after closing transaction | ||||
|
r38615 | > ui.setconfig(b'hooks', b'txnclose.showtip', showtip) | ||
|
r29919 | > 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] | ||||
|
r37444 | #endif | ||
|
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 | ||||
|
r34662 | new changesets f9ee2f85a263:eebf5a27f8ca | ||
|
r11870 | 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 | ||||
|
r37444 | #if repobundlerepo | ||
|
r11870 | 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] | ||
|
r37444 | |||
#endif | ||||
|
r11870 | $ cd .. | ||
|
r17015 | hide outer repo | ||
$ hg init | ||||
|
r11870 | Direct clone from bundle (all-history) | ||
|
r37444 | #if repobundlerepo | ||
|
r11870 | $ 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) | ||||
|
r39516 | new changesets f9ee2f85a263:aa35859c02ea (9 drafts) | ||
|
r11870 | 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 | ||
|
r46451 | [10] | ||
|
r13053 | |||
|
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 | ||||
|
r39516 | new changesets f9ee2f85a263 (1 drafts) | ||
|
r11870 | adding changesets | ||
adding manifests | ||||
adding file changes | ||||
added 1 changesets with 1 changes to 1 files | ||||
|
r39516 | new changesets 34c2bf6b0626 (1 drafts) | ||
|
r11870 | 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 .. | ||||
|
r37444 | #endif | ||
|
r11870 | |||
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 | ||||
|
r37444 | $ cd .. | ||
#if repobundlerepo | ||||
$ cd orig | ||||
|
r11870 | $ 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 | ||||
|
r46518 | abort: unknown revision 'bundle.hg' | ||
|
r13826 | [255] | ||
note that percent encoding is not handled: | ||||
$ hg incoming ../test%23bundle.hg | ||||
|
r46518 | abort: repository ../test%23bundle.hg not found | ||
|
r13826 | [255] | ||
$ cd .. | ||||
|
r37444 | #endif | ||
|
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 | ||||
|
r37444 | #if repobundlerepo | ||
|
r18701 | $ hg -R foo.hg -q log -r "bundle()" | ||
9:b4f5acb1ee27 | ||||
|
r37444 | #endif | ||
|
r18701 | |||
$ 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 | ||||
|
r47397 | abort: 00changelog.i@bbd179dfa0a71671c253b3ae0aa1513b60d199fa: unknown parent | ||
|
r46732 | [50] | ||
|
r11870 | |||
full history bundle, refuses to verify non-local repo | ||||
|
r37444 | #if repobundlerepo | ||
|
r11870 | $ hg -R all.hg verify | ||
abort: cannot verify bundle or remote repos | ||||
|
r12316 | [255] | ||
|
r37444 | #endif | ||
|
r11870 | |||
but, regular verify must continue to work | ||||
$ hg -R orig verify | ||||
checking changesets | ||||
checking manifests | ||||
crosschecking files in changesets and manifests | ||||
checking files | ||||
|
r39525 | checked 2 changesets with 2 changes to 2 files | ||
|
r11870 | |||
|
r37444 | #if repobundlerepo | ||
|
r11870 | 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 .. | ||||
|
r37444 | #endif | ||
|
r11870 | |||
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 | ||||
|
r36983 | bundle2-output-bundle: "HG20", (1 params) 2 parts total | ||
|
r29593 | bundle2-output-part: "changegroup" (params: 1 mandatory 1 advisory) streamed payload | ||
|
r39275 | changesets: 1/2 chunks (50.00%) | ||
changesets: 2/2 chunks (100.00%) | ||||
manifests: 1/2 chunks (50.00%) | ||||
manifests: 2/2 chunks (100.00%) | ||||
files: b 1/3 files (33.33%) | ||||
files: b1 2/3 files (66.67%) | ||||
files: x 3/3 files (100.00%) | ||||
|
r37920 | bundle2-output-part: "cache:rev-branch-cache" (advisory) streamed payload | ||
|
r16736 | |||
|
r37444 | #if repobundlerepo | ||
|
r16736 | == 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 | ||||
|
r39525 | checked 3 changesets with 5 changes to 4 files | ||
|
r37444 | #endif | ||
|
r16913 | |||
|
r27911 | == Test bundling no commits | ||
$ hg bundle -r 'public()' no-output.hg | ||||
abort: no commits to bundle | ||||
|
r46431 | [10] | ||
|
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 | ||||
|
r37444 | |||
#if repobundlerepo | ||||
|
r28714 | $ hg bundle --base 1 -r 3 ../update2bundled.hg | ||
1 changesets found | ||||
$ hg strip -r 3 | ||||
|
r35394 | saved backup bundle to $TESTTMP/update2bundled/.hg/strip-backup/8bd3e1f196af-017e56d8-backup.hg | ||
|
r28714 | $ 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 | ||||
|
r37444 | #endif | ||
|
r40458 | |||
Test the option that create slim bundle | ||||
$ hg bundle -a --config devel.bundle.delta=p1 ./slim.hg | ||||
3 changesets found | ||||
|
r40459 | |||
Test the option that create and no-delta's bundle | ||||
$ hg bundle -a --config devel.bundle.delta=full ./full.hg | ||||
3 changesets found | ||||