##// END OF EJS Templates
changegroup: increase write buffer size to 128k...
changegroup: increase write buffer size to 128k By default, Python defers to the operating system for choosing the default buffer size on opened files. On my Linux machine, the default is 4k, which is really small for 2016. This patch bumps the write buffer size when writing changegroups/bundles to 128k. This matches the 128k read buffer we already use on revlogs. It's worth noting that this only impacts when writing to an explicit file (such as during `hg bundle`). Buffers when writing to bundle files via the repo vfs or to a temporary file are not impacted. When producing a none-v2 bundle file of the mozilla-unified repository, this change caused the number of write() system calls to drop from 952,449 to 29,788. After this change, the most frequent system calls are fstat(), read(), lseek(), and open(). There were 2,523,672 system calls after this patch (so a net decrease of ~950k is statistically significant). This change shows no performance change on my system. But I have a high-end system with a fast SSD. It is quite possible this change will have a significant impact on network file systems, where extra network round trips due to excessive I/O system calls could introduce significant latency.

File last commit:

r30013:16595498 default
r30212:260af198 default
Show More
test-bundle.t
851 lines | 21.1 KiB | text/troff | Tads3Lexer
Pierre-Yves David
test: use generaldelta for test-bundle.t...
r26923
$ cat << EOF >> $HGRCPATH
> [format]
> usegeneraldelta=yes
> EOF
Martin Geisler
tests: unify test-bundle
r11870 Setting up test
$ hg init test
$ cd test
$ echo 0 > afile
$ hg add afile
Martin Geisler
tests: remove unneeded -d flags...
r12156 $ hg commit -m "0.0"
Martin Geisler
tests: unify test-bundle
r11870 $ echo 1 >> afile
Martin Geisler
tests: remove unneeded -d flags...
r12156 $ hg commit -m "0.1"
Martin Geisler
tests: unify test-bundle
r11870 $ echo 2 >> afile
Martin Geisler
tests: remove unneeded -d flags...
r12156 $ hg commit -m "0.2"
Martin Geisler
tests: unify test-bundle
r11870 $ echo 3 >> afile
Martin Geisler
tests: remove unneeded -d flags...
r12156 $ hg commit -m "0.3"
Martin Geisler
tests: unify test-bundle
r11870 $ hg update -C 0
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ echo 1 >> afile
Martin Geisler
tests: remove unneeded -d flags...
r12156 $ hg commit -m "1.1"
Martin Geisler
tests: unify test-bundle
r11870 created new head
$ echo 2 >> afile
Martin Geisler
tests: remove unneeded -d flags...
r12156 $ hg commit -m "1.2"
Martin Geisler
tests: unify test-bundle
r11870 $ echo "a line" > fred
$ echo 3 >> afile
$ hg add fred
Martin Geisler
tests: remove unneeded -d flags...
r12156 $ hg commit -m "1.3"
Martin Geisler
tests: unify test-bundle
r11870 $ hg mv afile adifferentfile
Martin Geisler
tests: remove unneeded -d flags...
r12156 $ hg commit -m "1.3m"
Martin Geisler
tests: unify test-bundle
r11870 $ hg update -C 3
1 files updated, 0 files merged, 2 files removed, 0 files unresolved
$ hg mv afile anotherfile
Martin Geisler
tests: remove unneeded -d flags...
r12156 $ hg commit -m "0.3m"
Martin Geisler
tests: unify test-bundle
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
Alain Leufroy <alain.leufroyATgmailMYDOTcom>
bundle: display info about secret changets while no sharable changeset found
r15991 Bundle and phase
$ hg -R test phase --force --secret 0
$ hg -R test bundle phase.hg empty
searching for changes
Matt Mackall
scmutil: unify some 'no changes found' messages...
r15993 no changes found (ignored 9 secret changesets)
Alain Leufroy <alain.leufroyATgmailMYDOTcom>
bundle: display info about secret changets while no sharable changeset found
r15991 [1]
$ hg -R test phase --draft -r 'head()'
Martin Geisler
tests: unify test-bundle
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
Matt Mackall
tests: add exit codes to unified tests
r12316 [1]
Martin Geisler
tests: unify test-bundle
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
Piotr Klecha
pull: close peer repo on completion (issue2491) (issue2797)...
r20576 Verify that there are no leaked temporary files after pull (issue2797)
$ ls test/.hg | grep .hg10un
[1]
Martin Geisler
tests: unify test-bundle
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
Gilles Moris
rollback: clarifies the message about the reverted state (issue2628)...
r13446 repository tip rolled back to revision -1 (undo pull)
Martin Geisler
tests: unify test-bundle
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
Gilles Moris
rollback: clarifies the message about the reverted state (issue2628)...
r13446 repository tip rolled back to revision -1 (undo pull)
Martin Geisler
tests: unify test-bundle
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
Martin Geisler
tests: remove unneeded -d flags...
r12156 changeset: 8:aa35859c02ea
Martin Geisler
tests: unify test-bundle
r11870 tag: tip
Martin Geisler
tests: remove unneeded -d flags...
r12156 parent: 3:eebf5a27f8ca
Martin Geisler
tests: unify test-bundle
r11870 user: test
Martin Geisler
tests: remove unneeded -d flags...
r12156 date: Thu Jan 01 00:00:00 1970 +0000
Martin Geisler
tests: unify test-bundle
r11870 summary: 0.3m
Martin Geisler
tests: remove unneeded -d flags...
r12156 changeset: 7:a6a34bfa0076
Martin Geisler
tests: unify test-bundle
r11870 user: test
Martin Geisler
tests: remove unneeded -d flags...
r12156 date: Thu Jan 01 00:00:00 1970 +0000
Martin Geisler
tests: unify test-bundle
r11870 summary: 1.3m
Martin Geisler
tests: remove unneeded -d flags...
r12156 changeset: 6:7373c1169842
Martin Geisler
tests: unify test-bundle
r11870 user: test
Martin Geisler
tests: remove unneeded -d flags...
r12156 date: Thu Jan 01 00:00:00 1970 +0000
Martin Geisler
tests: unify test-bundle
r11870 summary: 1.3
Martin Geisler
tests: remove unneeded -d flags...
r12156 changeset: 5:1bb50a9436a7
Martin Geisler
tests: unify test-bundle
r11870 user: test
Martin Geisler
tests: remove unneeded -d flags...
r12156 date: Thu Jan 01 00:00:00 1970 +0000
Martin Geisler
tests: unify test-bundle
r11870 summary: 1.2
Martin Geisler
tests: remove unneeded -d flags...
r12156 changeset: 4:095197eb4973
parent: 0:f9ee2f85a263
Martin Geisler
tests: unify test-bundle
r11870 user: test
Martin Geisler
tests: remove unneeded -d flags...
r12156 date: Thu Jan 01 00:00:00 1970 +0000
Martin Geisler
tests: unify test-bundle
r11870 summary: 1.1
Martin Geisler
tests: remove unneeded -d flags...
r12156 changeset: 3:eebf5a27f8ca
Martin Geisler
tests: unify test-bundle
r11870 user: test
Martin Geisler
tests: remove unneeded -d flags...
r12156 date: Thu Jan 01 00:00:00 1970 +0000
Martin Geisler
tests: unify test-bundle
r11870 summary: 0.3
Martin Geisler
tests: remove unneeded -d flags...
r12156 changeset: 2:e38ba6f5b7e0
Martin Geisler
tests: unify test-bundle
r11870 user: test
Martin Geisler
tests: remove unneeded -d flags...
r12156 date: Thu Jan 01 00:00:00 1970 +0000
Martin Geisler
tests: unify test-bundle
r11870 summary: 0.2
Martin Geisler
tests: remove unneeded -d flags...
r12156 changeset: 1:34c2bf6b0626
Martin Geisler
tests: unify test-bundle
r11870 user: test
Martin Geisler
tests: remove unneeded -d flags...
r12156 date: Thu Jan 01 00:00:00 1970 +0000
Martin Geisler
tests: unify test-bundle
r11870 summary: 0.1
Martin Geisler
tests: remove unneeded -d flags...
r12156 changeset: 0:f9ee2f85a263
Martin Geisler
tests: unify test-bundle
r11870 user: test
Martin Geisler
tests: remove unneeded -d flags...
r12156 date: Thu Jan 01 00:00:00 1970 +0000
Martin Geisler
tests: unify test-bundle
r11870 summary: 0.0
Adrian Buehlmann
Make sure bundlerepo doesn't leak temp files (issue2491)...
r13382 Make sure bundlerepo doesn't leak tempfiles (issue2491)
$ ls .hg
00changelog.i
cache
requires
store
Martin Geisler
tests: unify test-bundle
r11870
Pull ../full.hg into empty (with hook)
Adrian Buehlmann
test-bundle: enable for Windows
r16903 $ echo "[hooks]" >> .hg/hgrc
Matt Mackall
tests: simplify printenv calls...
r25478 $ echo "changegroup = printenv.py changegroup" >> .hg/hgrc
Martin Geisler
tests: unify test-bundle
r11870
doesn't work (yet ?)
hg -R bundle://../full.hg verify
$ hg pull bundle://../full.hg
Brodie Rao
url: use url.url in url.open()
r13818 pulling from bundle:../full.hg
Martin Geisler
tests: unify test-bundle
r11870 requesting all changes
adding changesets
adding manifests
adding file changes
added 9 changesets with 7 changes to 4 files (+1 heads)
Mateusz Kwapich
hooks: add HG_NODE_LAST to txnclose and changegroup hook environments...
r27739 changegroup hook: HG_NODE=f9ee2f85a263049e9ae6d37a0e67e96194ffb735 HG_NODE_LAST=aa35859c02ea8bd48da5da68cd2740ac71afcbaf HG_SOURCE=pull HG_TXNID=TXN:* HG_URL=bundle:../full.hg (glob)
Martin Geisler
tests: unify test-bundle
r11870 (run 'hg heads' to see heads, 'hg merge' to merge)
Rollback empty
$ hg rollback
Gilles Moris
rollback: clarifies the message about the reverted state (issue2628)...
r13446 repository tip rolled back to revision -1 (undo pull)
Martin Geisler
tests: unify test-bundle
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)
Mateusz Kwapich
hooks: add HG_NODE_LAST to txnclose and changegroup hook environments...
r27739 changegroup hook: HG_NODE=f9ee2f85a263049e9ae6d37a0e67e96194ffb735 HG_NODE_LAST=aa35859c02ea8bd48da5da68cd2740ac71afcbaf HG_SOURCE=pull HG_TXNID=TXN:* HG_URL=bundle:empty+full.hg (glob)
Martin Geisler
tests: unify test-bundle
r11870 (run 'hg heads' to see heads, 'hg merge' to merge)
Gregory Szorc
commands: support creating stream clone bundles...
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"
timeless
debugcreatestreamclonebundle: use single quotes around command hint...
r28961 (use 'hg debugcreatestreamclonebundle')
Gregory Szorc
commands: support creating stream clone bundles...
r26757 [255]
packed1 is produced properly
$ hg -R test debugcreatestreamclonebundle packed.hg
Martin von Zweigbergk
revlog: don't consider nullrev when choosing delta base...
r27251 writing 2663 bytes for 6 files
Pierre-Yves David
test: use generaldelta for test-bundle.t...
r26923 bundle requirements: generaldelta, revlogv1
Gregory Szorc
commands: support creating stream clone bundles...
r26757
$ f -B 64 --size --sha1 --hexdump packed.hg
Martin von Zweigbergk
revlog: don't consider nullrev when choosing delta base...
r27251 packed.hg: size=2826, sha1=e139f97692a142b19cdcff64a69697d5307ce6d4
Gregory Szorc
commands: support creating stream clone bundles...
r26757 0000: 48 47 53 31 55 4e 00 00 00 00 00 00 00 06 00 00 |HGS1UN..........|
Martin von Zweigbergk
revlog: don't consider nullrev when choosing delta base...
r27251 0010: 00 00 00 00 0a 67 00 16 67 65 6e 65 72 61 6c 64 |.....g..generald|
Pierre-Yves David
test: use generaldelta for test-bundle.t...
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|
Gregory Szorc
commands: support creating stream clone bundles...
r26757
Gregory Szorc
commands: teach debugbundle to print bundle specification...
r27885 $ hg debugbundle --spec packed.hg
none-packed1;requirements%3Dgeneraldelta%2Crevlogv1
Gregory Szorc
tests: actually test non-generaldelta variant for stream clones...
r30013 generaldelta requirement is not listed in stream clone bundles unless used
Gregory Szorc
commands: support creating stream clone bundles...
r26757
Gregory Szorc
tests: actually test non-generaldelta variant for stream clones...
r30013 $ hg --config format.usegeneraldelta=false init testnongd
$ cd testnongd
Gregory Szorc
commands: support creating stream clone bundles...
r26757 $ touch foo
$ hg -q commit -A -m initial
$ cd ..
Gregory Szorc
tests: actually test non-generaldelta variant for stream clones...
r30013 $ hg -R testnongd debugcreatestreamclonebundle packednongd.hg
Gregory Szorc
commands: support creating stream clone bundles...
r26757 writing 301 bytes for 3 files
Gregory Szorc
tests: actually test non-generaldelta variant for stream clones...
r30013 bundle requirements: revlogv1
Gregory Szorc
commands: support creating stream clone bundles...
r26757
Gregory Szorc
tests: actually test non-generaldelta variant for stream clones...
r30013 $ f -B 64 --size --sha1 --hexdump packednongd.hg
packednongd.hg: size=383, sha1=1d9c230238edd5d38907100b729ba72b1831fe6f
Gregory Szorc
commands: support creating stream clone bundles...
r26757 0000: 48 47 53 31 55 4e 00 00 00 00 00 00 00 03 00 00 |HGS1UN..........|
Gregory Szorc
tests: actually test non-generaldelta variant for stream clones...
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 |................|
Gregory Szorc
commands: support creating stream clone bundles...
r26757
Gregory Szorc
tests: actually test non-generaldelta variant for stream clones...
r30013 $ hg debugbundle --spec packednongd.hg
none-packed1;requirements%3Drevlogv1
Gregory Szorc
commands: teach debugbundle to print bundle specification...
r27885
Gregory Szorc
commands: support consuming stream clone bundles...
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
FUJIWARA Katsunori
streamclone: clear caches after writing changes into files for visibility...
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
Gregory Szorc
commands: support consuming stream clone bundles...
r26758 $ hg -R packed debugapplystreamclonebundle packed.hg
Pierre-Yves David
test: use generaldelta for test-bundle.t...
r26923 6 files to transfer, 2.60 KB of data
FUJIWARA Katsunori
streamclone: clear caches after writing changes into files for visibility...
r29919 pretxnopen: 000000000000
pretxnclose: aa35859c02ea
Pierre-Yves David
test: use generaldelta for test-bundle.t...
r26923 transferred 2.60 KB in *.* seconds (* */sec) (glob)
FUJIWARA Katsunori
streamclone: clear caches after writing changes into files for visibility...
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
Gregory Szorc
commands: support consuming stream clone bundles...
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]
Martin Geisler
tests: unify test-bundle
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
Eric Sumner
bundlerepo: retract phase boundary...
r23632 $ hg -R bundle://../full.hg log -T phases
Martin Geisler
tests: remove unneeded -d flags...
r12156 changeset: 8:aa35859c02ea
Martin Geisler
tests: unify test-bundle
r11870 tag: tip
Eric Sumner
bundlerepo: retract phase boundary...
r23632 phase: draft
Martin Geisler
tests: remove unneeded -d flags...
r12156 parent: 3:eebf5a27f8ca
Martin Geisler
tests: unify test-bundle
r11870 user: test
Martin Geisler
tests: remove unneeded -d flags...
r12156 date: Thu Jan 01 00:00:00 1970 +0000
Martin Geisler
tests: unify test-bundle
r11870 summary: 0.3m
Martin Geisler
tests: remove unneeded -d flags...
r12156 changeset: 7:a6a34bfa0076
Eric Sumner
bundlerepo: retract phase boundary...
r23632 phase: draft
Martin Geisler
tests: unify test-bundle
r11870 user: test
Martin Geisler
tests: remove unneeded -d flags...
r12156 date: Thu Jan 01 00:00:00 1970 +0000
Martin Geisler
tests: unify test-bundle
r11870 summary: 1.3m
Martin Geisler
tests: remove unneeded -d flags...
r12156 changeset: 6:7373c1169842
Eric Sumner
bundlerepo: retract phase boundary...
r23632 phase: draft
Martin Geisler
tests: unify test-bundle
r11870 user: test
Martin Geisler
tests: remove unneeded -d flags...
r12156 date: Thu Jan 01 00:00:00 1970 +0000
Martin Geisler
tests: unify test-bundle
r11870 summary: 1.3
Martin Geisler
tests: remove unneeded -d flags...
r12156 changeset: 5:1bb50a9436a7
Eric Sumner
bundlerepo: retract phase boundary...
r23632 phase: draft
Martin Geisler
tests: unify test-bundle
r11870 user: test
Martin Geisler
tests: remove unneeded -d flags...
r12156 date: Thu Jan 01 00:00:00 1970 +0000
Martin Geisler
tests: unify test-bundle
r11870 summary: 1.2
Martin Geisler
tests: remove unneeded -d flags...
r12156 changeset: 4:095197eb4973
Eric Sumner
bundlerepo: retract phase boundary...
r23632 phase: draft
Martin Geisler
tests: remove unneeded -d flags...
r12156 parent: 0:f9ee2f85a263
Martin Geisler
tests: unify test-bundle
r11870 user: test
Martin Geisler
tests: remove unneeded -d flags...
r12156 date: Thu Jan 01 00:00:00 1970 +0000
Martin Geisler
tests: unify test-bundle
r11870 summary: 1.1
Martin Geisler
tests: remove unneeded -d flags...
r12156 changeset: 3:eebf5a27f8ca
Eric Sumner
bundlerepo: retract phase boundary...
r23632 phase: public
Martin Geisler
tests: unify test-bundle
r11870 user: test
Martin Geisler
tests: remove unneeded -d flags...
r12156 date: Thu Jan 01 00:00:00 1970 +0000
Martin Geisler
tests: unify test-bundle
r11870 summary: 0.3
Martin Geisler
tests: remove unneeded -d flags...
r12156 changeset: 2:e38ba6f5b7e0
Eric Sumner
bundlerepo: retract phase boundary...
r23632 phase: public
Martin Geisler
tests: unify test-bundle
r11870 user: test
Martin Geisler
tests: remove unneeded -d flags...
r12156 date: Thu Jan 01 00:00:00 1970 +0000
Martin Geisler
tests: unify test-bundle
r11870 summary: 0.2
Martin Geisler
tests: remove unneeded -d flags...
r12156 changeset: 1:34c2bf6b0626
Eric Sumner
bundlerepo: retract phase boundary...
r23632 phase: public
Martin Geisler
tests: unify test-bundle
r11870 user: test
Martin Geisler
tests: remove unneeded -d flags...
r12156 date: Thu Jan 01 00:00:00 1970 +0000
Martin Geisler
tests: unify test-bundle
r11870 summary: 0.1
Martin Geisler
tests: remove unneeded -d flags...
r12156 changeset: 0:f9ee2f85a263
Eric Sumner
bundlerepo: retract phase boundary...
r23632 phase: public
Martin Geisler
tests: unify test-bundle
r11870 user: test
Martin Geisler
tests: remove unneeded -d flags...
r12156 date: Thu Jan 01 00:00:00 1970 +0000
Martin Geisler
tests: unify test-bundle
r11870 summary: 0.0
Incoming full.hg in partial
$ hg incoming bundle://../full.hg
Brodie Rao
url: use url.url in url.open()
r13818 comparing with bundle:../full.hg
Martin Geisler
tests: unify test-bundle
r11870 searching for changes
Martin Geisler
tests: remove unneeded -d flags...
r12156 changeset: 4:095197eb4973
parent: 0:f9ee2f85a263
Martin Geisler
tests: unify test-bundle
r11870 user: test
Martin Geisler
tests: remove unneeded -d flags...
r12156 date: Thu Jan 01 00:00:00 1970 +0000
Martin Geisler
tests: unify test-bundle
r11870 summary: 1.1
Martin Geisler
tests: remove unneeded -d flags...
r12156 changeset: 5:1bb50a9436a7
Martin Geisler
tests: unify test-bundle
r11870 user: test
Martin Geisler
tests: remove unneeded -d flags...
r12156 date: Thu Jan 01 00:00:00 1970 +0000
Martin Geisler
tests: unify test-bundle
r11870 summary: 1.2
Martin Geisler
tests: remove unneeded -d flags...
r12156 changeset: 6:7373c1169842
Martin Geisler
tests: unify test-bundle
r11870 user: test
Martin Geisler
tests: remove unneeded -d flags...
r12156 date: Thu Jan 01 00:00:00 1970 +0000
Martin Geisler
tests: unify test-bundle
r11870 summary: 1.3
Martin Geisler
tests: remove unneeded -d flags...
r12156 changeset: 7:a6a34bfa0076
Martin Geisler
tests: unify test-bundle
r11870 user: test
Martin Geisler
tests: remove unneeded -d flags...
r12156 date: Thu Jan 01 00:00:00 1970 +0000
Martin Geisler
tests: unify test-bundle
r11870 summary: 1.3m
Martin Geisler
tests: remove unneeded -d flags...
r12156 changeset: 8:aa35859c02ea
Martin Geisler
tests: unify test-bundle
r11870 tag: tip
Martin Geisler
tests: remove unneeded -d flags...
r12156 parent: 3:eebf5a27f8ca
Martin Geisler
tests: unify test-bundle
r11870 user: test
Martin Geisler
tests: remove unneeded -d flags...
r12156 date: Thu Jan 01 00:00:00 1970 +0000
Martin Geisler
tests: unify test-bundle
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
Martin Geisler
tests: remove unneeded -d flags...
r12156 changeset: 4:095197eb4973
parent: 0:f9ee2f85a263
Martin Geisler
tests: unify test-bundle
r11870 user: test
Martin Geisler
tests: remove unneeded -d flags...
r12156 date: Thu Jan 01 00:00:00 1970 +0000
Martin Geisler
tests: unify test-bundle
r11870 summary: 1.1
Martin Geisler
tests: remove unneeded -d flags...
r12156 changeset: 5:1bb50a9436a7
Martin Geisler
tests: unify test-bundle
r11870 user: test
Martin Geisler
tests: remove unneeded -d flags...
r12156 date: Thu Jan 01 00:00:00 1970 +0000
Martin Geisler
tests: unify test-bundle
r11870 summary: 1.2
Martin Geisler
tests: remove unneeded -d flags...
r12156 changeset: 6:7373c1169842
Martin Geisler
tests: unify test-bundle
r11870 user: test
Martin Geisler
tests: remove unneeded -d flags...
r12156 date: Thu Jan 01 00:00:00 1970 +0000
Martin Geisler
tests: unify test-bundle
r11870 summary: 1.3
Martin Geisler
tests: remove unneeded -d flags...
r12156 changeset: 7:a6a34bfa0076
Martin Geisler
tests: unify test-bundle
r11870 user: test
Martin Geisler
tests: remove unneeded -d flags...
r12156 date: Thu Jan 01 00:00:00 1970 +0000
Martin Geisler
tests: unify test-bundle
r11870 summary: 1.3m
Martin Geisler
tests: remove unneeded -d flags...
r12156 changeset: 8:aa35859c02ea
Martin Geisler
tests: unify test-bundle
r11870 tag: tip
Martin Geisler
tests: remove unneeded -d flags...
r12156 parent: 3:eebf5a27f8ca
Martin Geisler
tests: unify test-bundle
r11870 user: test
Martin Geisler
tests: remove unneeded -d flags...
r12156 date: Thu Jan 01 00:00:00 1970 +0000
Martin Geisler
tests: unify test-bundle
r11870 summary: 0.3m
Outgoing -R does-not-exist.hg vs partial2 in partial
$ hg -R bundle://../does-not-exist.hg outgoing ../partial2
Adrian Buehlmann
test-bundle: enable for Windows
r16903 abort: *../does-not-exist.hg* (glob)
Matt Mackall
tests: add exit codes to unified tests
r12316 [255]
Martin Geisler
tests: unify test-bundle
r11870 $ cd ..
Mads Kiilerich
tests: add missing no-outer-repo requirements...
r17015 hide outer repo
$ hg init
Martin Geisler
tests: unify test-bundle
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
Martin Geisler
tests: remove unneeded -d flags...
r12156 changeset: 8:aa35859c02ea
Martin Geisler
tests: unify test-bundle
r11870 tag: tip
Martin Geisler
tests: remove unneeded -d flags...
r12156 parent: 3:eebf5a27f8ca
Martin Geisler
tests: unify test-bundle
r11870 user: test
Martin Geisler
tests: remove unneeded -d flags...
r12156 date: Thu Jan 01 00:00:00 1970 +0000
Martin Geisler
tests: unify test-bundle
r11870 summary: 0.3m
Martin Geisler
tests: remove unneeded -d flags...
r12156 changeset: 7:a6a34bfa0076
Martin Geisler
tests: unify test-bundle
r11870 user: test
Martin Geisler
tests: remove unneeded -d flags...
r12156 date: Thu Jan 01 00:00:00 1970 +0000
Martin Geisler
tests: unify test-bundle
r11870 summary: 1.3m
$ rm -r full-clone
Nicolas Dumazet
util: do not recurse in makedirs if name is '' (issue2528)
r13053 When cloning from a non-copiable repository into '', do not
Matt Mackall
tests: fixup issue markers to make check-commit happy
r22183 recurse infinitely (issue2528)
Nicolas Dumazet
util: do not recurse in makedirs if name is '' (issue2528)
r13053
$ hg clone full.hg ''
FUJIWARA Katsunori
localrepo: use the path relative to "self.vfs" instead of "path" argument...
r17159 abort: empty destination path is not valid
Nicolas Dumazet
util: do not recurse in makedirs if name is '' (issue2528)
r13053 [255]
Matt Mackall
urls: bulk-change BTS urls to new location
r26420 test for https://bz.mercurial-scm.org/216
Martin Geisler
tests: unify test-bundle
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
Tomasz Kleczek
bundle: add revset expression to show bundle contents (issue3487)...
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 ..
Martin Geisler
tests: unify test-bundle
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 ..
Brodie Rao
url: refactor util.drop_scheme() and hg.localpath() into url.localpath()...
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 ..
FUJIWARA Katsunori
bundle: treat branches created newly on the local correctly (issue3828)...
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 ..
Matt Mackall
urls: bulk-change BTS urls to new location
r26420 test for https://bz.mercurial-scm.org/1144
Martin Geisler
tests: unify test-bundle
r11870
test that verify bundle does not traceback
Mads Kiilerich
spelling: fixes from spell checker
r21024 partial history bundle, fails w/ unknown parent
Martin Geisler
tests: unify test-bundle
r11870
$ hg -R bundle.hg verify
abort: 00changelog.i@bbd179dfa0a7: unknown parent!
Matt Mackall
tests: add exit codes to unified tests
r12316 [255]
Martin Geisler
tests: unify test-bundle
r11870
full history bundle, refuses to verify non-local repo
$ hg -R all.hg verify
abort: cannot verify bundle or remote repos
Matt Mackall
tests: add exit codes to unified tests
r12316 [255]
Martin Geisler
tests: unify test-bundle
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
Martin Geisler
tests: remove unneeded -d flags...
r12156 diff -r aa35859c02ea anotherfile
--- a/anotherfile Thu Jan 01 00:00:00 1970 +0000
Martin Geisler
tests: unify test-bundle
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
Sune Foldager
bundle: make bundles more portable (isue3441)...
r16736 $ echo x >x
Martin Geisler
tests: unify test-bundle
r11870 $ hg ci -Ama
adding a
Sune Foldager
bundle: make bundles more portable (isue3441)...
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
Martin Geisler
tests: unify test-bundle
r11870 $ echo b >b
$ hg ci -Amb
adding b
Sune Foldager
bundle: make bundles more portable (isue3441)...
r16736 created new head
Martin Geisler
tests: unify test-bundle
r11870 $ echo b1 >b1
Sune Foldager
bundle: make bundles more portable (isue3441)...
r16736 $ echo xx >x
Martin Geisler
tests: unify test-bundle
r11870 $ hg ci -Amb1
adding b1
Sune Foldager
bundle: make bundles more portable (isue3441)...
r16736 $ hg clone -q -r2 . part
Martin Geisler
tests: unify test-bundle
r11870
== bundling via incoming
$ hg in -R part --bundle incoming.hg --template "{node}\n" .
comparing with .
searching for changes
Sune Foldager
bundle: make bundles more portable (isue3441)...
r16736 1a38c1b849e8b70c756d2d80b0b9a3ac0b7ea11a
057f4db07f61970e1c11e83be79e9d08adc4dc31
Martin Geisler
tests: unify test-bundle
r11870
== bundling
Pierre-Yves David
progress: get the extremely verbose output out of default debug...
r25125 $ hg bundle bundle.hg part --debug --config progress.debug=true
Peter Arrenbrecht
discovery: add new set-based discovery...
r14164 query 1; heads
Martin Geisler
tests: unify test-bundle
r11870 searching for changes
Peter Arrenbrecht
discovery: add new set-based discovery...
r14164 all remote heads known locally
Martin Geisler
tests: unify test-bundle
r11870 2 changesets found
list of changesets:
Sune Foldager
bundle: make bundles more portable (isue3441)...
r16736 1a38c1b849e8b70c756d2d80b0b9a3ac0b7ea11a
057f4db07f61970e1c11e83be79e9d08adc4dc31
Pierre-Yves David
test: use generaldelta for test-bundle.t...
r26923 bundle2-output-bundle: "HG20", (1 params) 1 parts total
Gregory Szorc
bundle2: store changeset count when creating file bundles...
r29593 bundle2-output-part: "changegroup" (params: 1 mandatory 1 advisory) streamed payload
Sune Foldager
localrepo: add total to changeset progress in bundle/push
r14520 bundling: 1/2 changesets (50.00%)
bundling: 2/2 changesets (100.00%)
Augie Fackler
bundle progress: offer best-guess deterministic progress information...
r13116 bundling: 1/2 manifests (50.00%)
bundling: 2/2 manifests (100.00%)
Sune Foldager
bundle: make bundles more portable (isue3441)...
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
Martin Geisler
tests: unify test-bundle
r11870
Sune Foldager
bundle: make bundles more portable (isue3441)...
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
Mads Kiilerich
tests: add missing trailing 'cd ..'...
r16913
Durham Goode
bundle: exit early when there are no commits to bundle...
r27911 == Test bundling no commits
$ hg bundle -r 'public()' no-output.hg
abort: no commits to bundle
[255]
liscju
bundle: warn when update to revision existing only in a bundle (issue5004)...
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