##// END OF EJS Templates
revbranchcache: advertise and use 'rbc' exchange capability...
revbranchcache: advertise and use 'rbc' exchange capability The feature is now advertised and use. Updating the branchmap cache can be very expensive (up to minutes on large repository) and fetching revision branch data is about 80% of that. Exchanging the rev branch cache over the wire really help to recover from branch map invalidation. (There is a good chance other in flight chance would conflict on test-http-bad-server.t and other. So here is a small note to help update that test again: capabilities=19bytes, part-107bytes)

File last commit:

r36630:e8995997 default
r36986:2090044a default
Show More
test-debugcommands.t
406 lines | 10.4 KiB | text/troff | Tads3Lexer
/ tests / test-debugcommands.t
Pierre-Yves David
test: enable generaldelta in 'test-debugcommand.t'...
r26918 $ cat << EOF >> $HGRCPATH
Paul Morelle
debuglocks: allow setting a lock
r35396 > [ui]
> interactive=yes
Pierre-Yves David
test: enable generaldelta in 'test-debugcommand.t'...
r26918 > [format]
> usegeneraldelta=yes
> EOF
Patrick Mezard
debugrevlog: handle numrevs == numfull case (issue3537)...
r17188 $ hg init debugrevlog
$ cd debugrevlog
$ echo a > a
$ hg ci -Am adda
adding a
$ hg debugrevlog -m
format : 1
Pierre-Yves David
test: enable generaldelta in 'test-debugcommand.t'...
r26918 flags : inline, generaldelta
Patrick Mezard
debugrevlog: handle numrevs == numfull case (issue3537)...
r17188
revisions : 1
merges : 0 ( 0.00%)
normal : 1 (100.00%)
revisions : 1
full : 1 (100.00%)
deltas : 0 ( 0.00%)
revision size : 44
full : 44 (100.00%)
deltas : 0 ( 0.00%)
Gregory Szorc
commands: print chunk type in debugrevlog...
r30452 chunks : 1
0x75 (u) : 1 (100.00%)
chunks size : 44
0x75 (u) : 44 (100.00%)
Yuya Nishihara
debugrevlog: align chain length, reach, and compression ratio...
r33062 avg chain length : 0
max chain length : 0
max chain reach : 44
compression ratio : 0
Patrick Mezard
debugrevlog: handle numrevs == numfull case (issue3537)...
r17188
uncompressed data size (min/max/avg) : 43 / 43 / 43
full revision size (min/max/avg) : 44 / 44 / 44
delta size (min/max/avg) : 0 / 0 / 0
Mads Kiilerich
util: introduce util.debugstacktrace for showing a stack trace without crashing...
r20244
Kyle Lippincott
debugindex: respect --debug flag to show full nodeids
r23547 Test debugindex, with and without the --debug flag
$ hg debugindex a
Pierre-Yves David
test: enable generaldelta in 'test-debugcommand.t'...
r26918 rev offset length ..... linkrev nodeid p1 p2 (re)
Kyle Lippincott
debugindex: respect --debug flag to show full nodeids
r23547 0 0 3 .... 0 b789fdd96dc2 000000000000 000000000000 (re)
$ hg --debug debugindex a
Pierre-Yves David
test: enable generaldelta in 'test-debugcommand.t'...
r26918 rev offset length ..... linkrev nodeid p1 p2 (re)
Kyle Lippincott
debugindex: respect --debug flag to show full nodeids
r23547 0 0 3 .... 0 b789fdd96dc2f3bd229c1dd8eedf0fc60e2b68e3 0000000000000000000000000000000000000000 0000000000000000000000000000000000000000 (re)
$ hg debugindex -f 1 a
Pierre-Yves David
test: enable generaldelta in 'test-debugcommand.t'...
r26918 rev flag offset length size ..... link p1 p2 nodeid (re)
Kyle Lippincott
debugindex: respect --debug flag to show full nodeids
r23547 0 0000 0 3 2 .... 0 -1 -1 b789fdd96dc2 (re)
$ hg --debug debugindex -f 1 a
Pierre-Yves David
test: enable generaldelta in 'test-debugcommand.t'...
r26918 rev flag offset length size ..... link p1 p2 nodeid (re)
Kyle Lippincott
debugindex: respect --debug flag to show full nodeids
r23547 0 0000 0 3 2 .... 0 -1 -1 b789fdd96dc2f3bd229c1dd8eedf0fc60e2b68e3 (re)
Gregory Szorc
commands: add debugdeltachain command...
r27263 debugdelta chain basic output
$ hg debugdeltachain -m
rev chain# chainlen prev delta size rawsize chainsize ratio lindist extradist extraratio
0 1 1 -1 base 44 43 44 1.02326 44 0 0.00000
$ hg debugdeltachain -m -T '{rev} {chainid} {chainlen}\n'
0 1 1
$ hg debugdeltachain -m -Tjson
[
{
"chainid": 1,
"chainlen": 1,
"chainratio": 1.02325581395,
"chainsize": 44,
"compsize": 44,
"deltatype": "base",
"extradist": 0,
"extraratio": 0.0,
"lindist": 44,
"prevrev": -1,
"rev": 0,
"uncompsize": 43
}
]
Kyle Lippincott
debugindex: respect --debug flag to show full nodeids
r23547
Paul Morelle
debugdeltachain: output information about sparse read if enabled
r35050 debugdelta chain with sparse read enabled
$ cat >> $HGRCPATH <<EOF
> [experimental]
> sparse-read = True
> EOF
$ hg debugdeltachain -m
Paul Morelle
debugdeltachain: display how many chunks would be read in sparse-read mode
r35696 rev chain# chainlen prev delta size rawsize chainsize ratio lindist extradist extraratio readsize largestblk rddensity srchunks
0 1 1 -1 base 44 43 44 1.02326 44 0 0.00000 44 44 1.00000 1
Paul Morelle
debugdeltachain: output information about sparse read if enabled
r35050
$ hg debugdeltachain -m -T '{rev} {chainid} {chainlen} {readsize} {largestblock} {readdensity}\n'
0 1 1 44 44 1.0
$ hg debugdeltachain -m -Tjson
[
{
"chainid": 1,
"chainlen": 1,
"chainratio": 1.02325581395,
"chainsize": 44,
"compsize": 44,
"deltatype": "base",
"extradist": 0,
"extraratio": 0.0,
"largestblock": 44,
"lindist": 44,
"prevrev": -1,
"readdensity": 1.0,
"readsize": 44,
"rev": 0,
Paul Morelle
debugdeltachain: display how many chunks would be read in sparse-read mode
r35696 "srchunks": 1,
Paul Morelle
debugdeltachain: output information about sparse read if enabled
r35050 "uncompsize": 43
}
]
Paul Morelle
debugdeltachain: display how many chunks would be read in sparse-read mode
r35696 $ printf "This test checks things.\n" >> a
$ hg ci -m a
$ hg branch other
marked working directory as branch other
(branches are permanent and global, did you want a bookmark?)
$ for i in `$TESTDIR/seq.py 5`; do
> printf "shorter ${i}" >> a
> hg ci -m "a other:$i"
> hg up -q default
> printf "for the branch default we want longer chains: ${i}" >> a
> hg ci -m "a default:$i"
> hg up -q other
> done
$ hg debugdeltachain a -T '{rev} {srchunks}\n' \
> --config experimental.sparse-read.density-threshold=0.50 \
> --config experimental.sparse-read.min-gap-size=0
0 1
1 1
2 1
3 1
4 1
5 1
6 1
7 1
8 1
9 1
10 2
11 1
$ hg --config extensions.strip= strip --no-backup -r 1
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
Mateusz Kwapich
revlog: add config variable for limiting delta-chain length...
r23255 Test max chain len
$ cat >> $HGRCPATH << EOF
Augie Fackler
localrepo: rename revlog.maxchainlen to format.maxchainlen...
r23256 > [format]
Mateusz Kwapich
revlog: add config variable for limiting delta-chain length...
r23255 > maxchainlen=4
> EOF
Augie Fackler
localrepo: rename revlog.maxchainlen to format.maxchainlen...
r23256 $ printf "This test checks if maxchainlen config value is respected also it can serve as basic test for debugrevlog -d <file>.\n" >> a
Mateusz Kwapich
revlog: add config variable for limiting delta-chain length...
r23255 $ hg ci -m a
Augie Fackler
localrepo: rename revlog.maxchainlen to format.maxchainlen...
r23256 $ printf "b\n" >> a
Mateusz Kwapich
revlog: add config variable for limiting delta-chain length...
r23255 $ hg ci -m a
Augie Fackler
localrepo: rename revlog.maxchainlen to format.maxchainlen...
r23256 $ printf "c\n" >> a
Mateusz Kwapich
revlog: add config variable for limiting delta-chain length...
r23255 $ hg ci -m a
Augie Fackler
localrepo: rename revlog.maxchainlen to format.maxchainlen...
r23256 $ printf "d\n" >> a
Mateusz Kwapich
revlog: add config variable for limiting delta-chain length...
r23255 $ hg ci -m a
Augie Fackler
localrepo: rename revlog.maxchainlen to format.maxchainlen...
r23256 $ printf "e\n" >> a
Mateusz Kwapich
revlog: add config variable for limiting delta-chain length...
r23255 $ hg ci -m a
Augie Fackler
localrepo: rename revlog.maxchainlen to format.maxchainlen...
r23256 $ printf "f\n" >> a
Mateusz Kwapich
revlog: add config variable for limiting delta-chain length...
r23255 $ hg ci -m a
Augie Fackler
localrepo: rename revlog.maxchainlen to format.maxchainlen...
r23256 $ printf 'g\n' >> a
Mateusz Kwapich
revlog: add config variable for limiting delta-chain length...
r23255 $ hg ci -m a
Augie Fackler
localrepo: rename revlog.maxchainlen to format.maxchainlen...
r23256 $ printf 'h\n' >> a
Mateusz Kwapich
revlog: add config variable for limiting delta-chain length...
r23255 $ hg ci -m a
$ hg debugrevlog -d a
# rev p1rev p2rev start end deltastart base p1 p2 rawsize totalsize compression heads chainlen
0 -1 -1 0 ??? 0 0 0 0 ??? ???? ? 1 0 (glob)
1 0 -1 ??? ??? 0 0 0 0 ??? ???? ? 1 1 (glob)
2 1 -1 ??? ??? ??? ??? ??? 0 ??? ???? ? 1 2 (glob)
3 2 -1 ??? ??? ??? ??? ??? 0 ??? ???? ? 1 3 (glob)
4 3 -1 ??? ??? ??? ??? ??? 0 ??? ???? ? 1 4 (glob)
5 4 -1 ??? ??? ??? ??? ??? 0 ??? ???? ? 1 0 (glob)
6 5 -1 ??? ??? ??? ??? ??? 0 ??? ???? ? 1 1 (glob)
7 6 -1 ??? ??? ??? ??? ??? 0 ??? ???? ? 1 2 (glob)
8 7 -1 ??? ??? ??? ??? ??? 0 ??? ???? ? 1 3 (glob)
Pierre-Yves David
caches: introduce a 'debugupdatecaches' command...
r32265
Paul Morelle
debuglocks: add tests (and fix typo in early return)
r35395 Test debuglocks command:
$ hg debuglocks
lock: free
wlock: free
* Test setting the lock
waitlock <file> will wait for file to be created. If it isn't in a reasonable
amount of time, displays error message and returns 1
$ waitlock() {
> start=`date +%s`
Paul Morelle
debuglocks: allow setting a lock
r35396 > timeout=5
Paul Morelle
debuglocks: add tests (and fix typo in early return)
r35395 > while [ \( ! -f $1 \) -a \( ! -L $1 \) ]; do
> now=`date +%s`
> if [ "`expr $now - $start`" -gt $timeout ]; then
> echo "timeout: $1 was not created in $timeout seconds"
> return 1
> fi
> sleep 0.1
> done
> }
$ dolock() {
Paul Morelle
debuglocks: allow setting a lock
r35396 > {
> waitlock .hg/unlock
> rm -f .hg/unlock
> echo y
> } | hg debuglocks "$@" > /dev/null
Paul Morelle
debuglocks: add tests (and fix typo in early return)
r35395 > }
Paul Morelle
debuglocks: allow setting a lock
r35396 $ dolock -s &
Paul Morelle
debuglocks: add tests (and fix typo in early return)
r35395 $ waitlock .hg/store/lock
$ hg debuglocks
lock: user *, process * (*s) (glob)
wlock: free
[1]
$ touch .hg/unlock
$ wait
Paul Morelle
debuglocks: allow setting a lock
r35396 $ [ -f .hg/store/lock ] || echo "There is no lock"
There is no lock
Paul Morelle
debuglocks: add tests (and fix typo in early return)
r35395
* Test setting the wlock
Paul Morelle
debuglocks: allow setting a lock
r35396 $ dolock -S &
Paul Morelle
debuglocks: add tests (and fix typo in early return)
r35395 $ waitlock .hg/wlock
$ hg debuglocks
lock: free
wlock: user *, process * (*s) (glob)
[1]
$ touch .hg/unlock
$ wait
Paul Morelle
debuglocks: allow setting a lock
r35396 $ [ -f .hg/wlock ] || echo "There is no wlock"
There is no wlock
Paul Morelle
debuglocks: add tests (and fix typo in early return)
r35395
* Test setting both locks
Paul Morelle
debuglocks: allow setting a lock
r35396 $ dolock -Ss &
Paul Morelle
debuglocks: add tests (and fix typo in early return)
r35395 $ waitlock .hg/wlock && waitlock .hg/store/lock
$ hg debuglocks
lock: user *, process * (*s) (glob)
wlock: user *, process * (*s) (glob)
[2]
Paul Morelle
debuglocks: allow setting a lock
r35396
* Test failing to set a lock
$ hg debuglocks -s
abort: lock is already held
[255]
$ hg debuglocks -S
abort: wlock is already held
[255]
Paul Morelle
debuglocks: add tests (and fix typo in early return)
r35395 $ touch .hg/unlock
$ wait
$ hg debuglocks
lock: free
wlock: free
* Test forcing the lock
Paul Morelle
debuglocks: allow setting a lock
r35396 $ dolock -s &
Paul Morelle
debuglocks: add tests (and fix typo in early return)
r35395 $ waitlock .hg/store/lock
$ hg debuglocks
lock: user *, process * (*s) (glob)
wlock: free
[1]
$ hg debuglocks -L
$ hg debuglocks
lock: free
wlock: free
$ touch .hg/unlock
$ wait
* Test forcing the wlock
Paul Morelle
debuglocks: allow setting a lock
r35396 $ dolock -S &
Paul Morelle
debuglocks: add tests (and fix typo in early return)
r35395 $ waitlock .hg/wlock
$ hg debuglocks
lock: free
wlock: user *, process * (*s) (glob)
[1]
$ hg debuglocks -W
$ hg debuglocks
lock: free
wlock: free
$ touch .hg/unlock
$ wait
Yuya Nishihara
revlog: map rev(wdirid) to WdirUnsupported exception...
r32657 Test WdirUnsupported exception
$ hg debugdata -c ffffffffffffffffffffffffffffffffffffffff
abort: working directory revision cannot be specified
[255]
Pierre-Yves David
caches: introduce a 'debugupdatecaches' command...
r32265 Test cache warming command
$ rm -rf .hg/cache/
$ hg debugupdatecaches --debug
Pierre-Yves David
caches: move the 'updating the branch cache' message in 'updatecaches'...
r32267 updating the branch cache
Pierre-Yves David
caches: introduce a 'debugupdatecaches' command...
r32265 $ ls -r .hg/cache/*
.hg/cache/rbc-revs-v1
.hg/cache/rbc-names-v1
.hg/cache/branch2-served
Mateusz Kwapich
revlog: add config variable for limiting delta-chain length...
r23255 $ cd ..
Mads Kiilerich
util: introduce util.debugstacktrace for showing a stack trace without crashing...
r20244
Test internal debugstacktrace command
$ cat > debugstacktrace.py << EOF
Augie Fackler
tests: update test-debugcommands to pass our import checker
r33955 > from __future__ import absolute_import
> import sys
> from mercurial import util
Mads Kiilerich
util: introduce util.debugstacktrace for showing a stack trace without crashing...
r20244 > def f():
Augie Fackler
tests: update test-debugcommands to pass our import checker
r33955 > util.debugstacktrace(f=sys.stdout)
Mads Kiilerich
tests: rework util.debugstacktrace tests...
r31313 > g()
Mads Kiilerich
util: introduce util.debugstacktrace for showing a stack trace without crashing...
r20244 > def g():
Augie Fackler
tests: update test-debugcommands to pass our import checker
r33955 > util.dst('hello from g\\n', skip=1)
Mads Kiilerich
tests: rework util.debugstacktrace tests...
r31313 > h()
> def h():
Augie Fackler
tests: update test-debugcommands to pass our import checker
r33955 > util.dst('hi ...\\nfrom h hidden in g', 1, depth=2)
Mads Kiilerich
tests: rework util.debugstacktrace tests...
r31313 > f()
Mads Kiilerich
util: introduce util.debugstacktrace for showing a stack trace without crashing...
r20244 > EOF
Augie Fackler
cleanup: use $PYTHON to run python in many more tests...
r32940 $ $PYTHON debugstacktrace.py
Mads Kiilerich
util: introduce util.debugstacktrace for showing a stack trace without crashing...
r20244 stacktrace at:
Augie Fackler
tests: update test-debugcommands to pass our import checker
r33955 debugstacktrace.py:12 in * (glob)
debugstacktrace.py:5 in f
Mads Kiilerich
util: strip trailing newline from debugstacktrace message...
r31314 hello from g at:
Augie Fackler
tests: update test-debugcommands to pass our import checker
r33955 debugstacktrace.py:12 in * (glob)
debugstacktrace.py:6 in f
Mads Kiilerich
tests: rework util.debugstacktrace tests...
r31313 hi ...
from h hidden in g at:
Augie Fackler
tests: update test-debugcommands to pass our import checker
r33955 debugstacktrace.py:6 in f
debugstacktrace.py:9 in g
Boris Feld
debug: add a debugcapabilities commands...
r34960
Test debugcapabilities command:
$ hg debugcapabilities ./debugrevlog/
Main capabilities:
branchmap
Boris Feld
test-pattern: actually update tests using the patterns...
r35073 $USUAL_BUNDLE2_CAPS$
Boris Feld
debug: add a debugcapabilities commands...
r34960 getbundle
known
lookup
pushkey
unbundle
Boris Feld
debug: print parsed bundle2 capabilities with debugcapabilities...
r34961 Bundle2 capabilities:
HG20
Boris Feld
push: include a 'check:bookmarks' part when possible...
r35260 bookmarks
Boris Feld
debug: print parsed bundle2 capabilities with debugcapabilities...
r34961 changegroup
01
02
digests
md5
sha1
sha512
error
abort
unsupportedcontent
pushraced
pushkey
hgtagsfnodes
listkeys
phases
heads
pushkey
remote-changegroup
http
https
Boris Feld
revbranchcache: advertise and use 'rbc' exchange capability...
r36986 rev-branch-cache
Gregory Szorc
bundle2: always advertise client support for stream parts...
r35810 stream
v2
Gregory Szorc
debugcommands: introduce debugpeer command...
r35947
Test debugpeer
$ hg --config ui.ssh="\"$PYTHON\" \"$TESTDIR/dummyssh\"" debugpeer ssh://user@dummy/debugrevlog
url: ssh://user@dummy/debugrevlog
local: no
pushable: yes
$ hg --config ui.ssh="\"$PYTHON\" \"$TESTDIR/dummyssh\"" --debug debugpeer ssh://user@dummy/debugrevlog
Matt Harbison
tests: stabilize ssh tests on Windows...
r36007 running "*" "*/tests/dummyssh" 'user@dummy' 'hg -R debugrevlog serve --stdio' (glob) (no-windows !)
running "*" "*\tests/dummyssh" "user@dummy" "hg -R debugrevlog serve --stdio" (glob) (windows !)
Gregory Szorc
debugcommands: introduce debugpeer command...
r35947 devel-peer-request: hello
sending hello command
devel-peer-request: between
devel-peer-request: pairs: 81 bytes
sending between command
Boris Feld
revbranchcache: advertise and use 'rbc' exchange capability...
r36986 remote: 403
Gregory Szorc
wireproto: don't expose changegroupsubset capability if not available...
r36630 remote: capabilities: lookup branchmap pushkey known getbundle unbundlehash batch changegroupsubset streamreqs=generaldelta,revlogv1 $USUAL_BUNDLE2_CAPS_SERVER$ unbundle=HG10GZ,HG10BZ,HG10UN
Gregory Szorc
debugcommands: introduce debugpeer command...
r35947 remote: 1
url: ssh://user@dummy/debugrevlog
local: no
pushable: yes