##// END OF EJS Templates
revlog: subclass the new `repository.iverifyproblem` Protocol class...
revlog: subclass the new `repository.iverifyproblem` Protocol class This is the same transformation as 3a90a6fd710d did for dirstate, but the CamelCase naming was already cleaned up here. We shouldn't have to explicitly subclass, but I'm doing so to test the interplay of regular attributes and the `attrs` class. Also, PyCharm has a nifty feature that puts a jump point in the gutter to navigate back and forth between the base class and subclasses (and override functions and base class functions) when there's an explicit subclassing. Additionally, PyCharm will immediately flag signature mismatches without a 40m pytype run.

File last commit:

r50720:2f2682f4 default
r53365:4ef6dbc2 default
Show More
test-narrow-widen-no-ellipsis.t
414 lines | 9.2 KiB | text/troff | Tads3Lexer
/ tests / test-narrow-widen-no-ellipsis.t
Pulkit Goyal
tests: rename test-narrow-widen-non-ellipsis to match current names...
r39399 #testcases tree flat
$ . "$TESTDIR/narrow-library.sh"
#if tree
$ cat << EOF >> $HGRCPATH
> [experimental]
> treemanifest = 1
> EOF
#endif
$ hg init master
$ cd master
$ mkdir inside
$ echo 'inside' > inside/f
$ hg add inside/f
$ hg commit -m 'add inside'
$ mkdir widest
$ echo 'widest' > widest/f
$ hg add widest/f
$ hg commit -m 'add widest'
$ mkdir outside
$ echo 'outside' > outside/f
$ hg add outside/f
$ hg commit -m 'add outside'
$ cd ..
narrow clone the inside file
Martin von Zweigbergk
tests: add test for widening from an empty clone...
r40379 $ hg clone --narrow ssh://user@dummy/master narrow
Pulkit Goyal
tests: rename test-narrow-widen-non-ellipsis to match current names...
r39399 requesting all changes
adding changesets
adding manifests
adding file changes
Martin von Zweigbergk
tests: add test for widening from an empty clone...
r40379 added 3 changesets with 0 changes to 0 files
Pulkit Goyal
tests: rename test-narrow-widen-non-ellipsis to match current names...
r39399 new changesets *:* (glob)
updating to branch default
Martin von Zweigbergk
tests: add test for widening from an empty clone...
r40379 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
Pulkit Goyal
tests: rename test-narrow-widen-non-ellipsis to match current names...
r39399 $ cd narrow
$ hg tracked
Martin von Zweigbergk
tests: add test for widening from an empty clone...
r40379 $ hg files
[1]
widen from an empty clone
$ hg tracked --addinclude inside
comparing with ssh://user@dummy/master
searching for changes
adding changesets
adding manifests
adding file changes
added 0 changesets with 1 changes to 1 files
$ hg tracked
Pulkit Goyal
tests: rename test-narrow-widen-non-ellipsis to match current names...
r39399 I path:inside
Joerg Sonnenberger
tests: deal with "ls" vs "ls -A" difference on 2BSD derived systems...
r45218 $ ls -A
.hg
Pulkit Goyal
tests: rename test-narrow-widen-non-ellipsis to match current names...
r39399 inside
$ cat inside/f
inside
$ cd ..
add more upstream files which we will include in a wider narrow spec
$ cd master
$ mkdir wider
$ echo 'wider' > wider/f
$ hg add wider/f
$ echo 'widest v2' > widest/f
$ hg commit -m 'add wider, update widest'
$ echo 'widest v3' > widest/f
$ hg commit -m 'update widest v3'
$ echo 'inside v2' > inside/f
$ hg commit -m 'update inside'
$ mkdir outside2
$ echo 'outside2' > outside2/f
$ hg add outside2/f
$ hg commit -m 'add outside2'
$ echo 'widest v4' > widest/f
$ hg commit -m 'update widest v4'
$ hg log -T "{if(ellipsis, '...')}{rev}: {desc}\n"
7: update widest v4
6: add outside2
5: update inside
4: update widest v3
3: add wider, update widest
2: add outside
1: add widest
0: add inside
$ cd ..
Pulkit Goyal
tests: improve the widening testing in test-narrow-widen*...
r39502 Widen the narrow spec to see the widest file. This should not get the newly
Pulkit Goyal
tests: rename test-narrow-widen-non-ellipsis to match current names...
r39399 added upstream revisions.
$ cd narrow
Pulkit Goyal
narrow: don't do the dirstate dance if ellipses is not enabled...
r39999 $ hg id -n
2
Pulkit Goyal
tests: add debug output in test-narrow-widen-no-ellipsis.t...
r39707 $ hg tracked --addinclude widest/f --debug
Pulkit Goyal
tests: rename test-narrow-widen-non-ellipsis to match current names...
r39399 comparing with ssh://user@dummy/master
tests: use the right python when running dummyssh for narrow...
r46633 running * "*dummyssh" *user@dummy* *hg -R master serve --stdio* (glob)
Pulkit Goyal
tests: add debug output in test-narrow-widen-no-ellipsis.t...
r39707 sending hello command
sending between command
remote: * (glob)
remote: capabilities: * (glob)
remote: 1
sending protocaps command
query 1; heads
sending batch command
Pulkit Goyal
tests: rename test-narrow-widen-non-ellipsis to match current names...
r39399 searching for changes
discovery: replace "heads" by "changesets" in a output note (BC)...
r43154 all local changesets known remotely
Pulkit Goyal
narrow: the first version of narrow_widen wireprotocol command...
r40106 sending narrow_widen command
Pulkit Goyal
tests: add debug output in test-narrow-widen-no-ellipsis.t...
r39707 bundle2-input-bundle: with-transaction
bundle2-input-part: "changegroup" (params: * mandatory) supported (glob)
Pulkit Goyal
tests: rename test-narrow-widen-non-ellipsis to match current names...
r39399 adding changesets
adding manifests
Pulkit Goyal
tests: add debug output in test-narrow-widen-no-ellipsis.t...
r39707 adding widest/ revisions (tree !)
Pulkit Goyal
tests: rename test-narrow-widen-non-ellipsis to match current names...
r39399 adding file changes
run-tests: stop matching line for missing feature...
r42705 adding widest/f revisions
Pulkit Goyal
tests: add debug output in test-narrow-widen-no-ellipsis.t...
r39707 bundle2-input-part: total payload size * (glob)
Martin von Zweigbergk
bundle2: fix an off-by-one in debug message of number of parts...
r43201 bundle2-input-bundle: 1 parts total
changegroup: move message about added changes to transaction summary...
r43167 added 0 changesets with 1 changes to 1 files
Martin von Zweigbergk
narrow: reuse narrowspec.updateworkingcopy() when widening...
r41273 widest/f: narrowspec updated -> g
Pulkit Goyal
tests: add debug output in test-narrow-widen-no-ellipsis.t...
r39707 getting widest/f
Pulkit Goyal
tests: rename test-narrow-widen-non-ellipsis to match current names...
r39399 $ hg tracked
I path:inside
Pulkit Goyal
tests: improve the widening testing in test-narrow-widen*...
r39502 I path:widest/f
$ cat widest/f
widest
Pulkit Goyal
tests: rename test-narrow-widen-non-ellipsis to match current names...
r39399
Pulkit Goyal
narrow: don't do the dirstate dance if ellipses is not enabled...
r39999 $ hg id -n
2
Pulkit Goyal
tests: show that adding an already included path still calls narrow_widen()...
r40461 Test that extending already included files should not call narrow_widen
wireprotocol command
$ hg tracked --addinclude widest/f
Pulkit Goyal
narrow: rework logic to check whether we need to widen and narrow...
r40462 nothing to widen or narrow
Pulkit Goyal
tests: show that adding an already included path still calls narrow_widen()...
r40461
Pulkit Goyal
tests: rename test-narrow-widen-non-ellipsis to match current names...
r39399 Pull down the newly added upstream revision.
$ hg pull
pulling from ssh://user@dummy/master
searching for changes
adding changesets
adding manifests
adding file changes
Pulkit Goyal
tests: improve the widening testing in test-narrow-widen*...
r39502 added 5 changesets with 4 changes to 2 files
Pulkit Goyal
tests: rename test-narrow-widen-non-ellipsis to match current names...
r39399 new changesets *:* (glob)
(run 'hg update' to get a working copy)
$ hg update -r 'desc("add wider")'
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
Pulkit Goyal
tests: improve the widening testing in test-narrow-widen*...
r39502
$ cat widest/f
widest v2
Pulkit Goyal
tests: rename test-narrow-widen-non-ellipsis to match current names...
r39399
$ hg update -r 'desc("update inside")'
Pulkit Goyal
tests: improve the widening testing in test-narrow-widen*...
r39502 2 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ cat widest/f
widest v3
Pulkit Goyal
tests: rename test-narrow-widen-non-ellipsis to match current names...
r39399 $ cat inside/f
inside v2
$ hg log -T "{if(ellipsis, '...')}{rev}: {desc}\n"
7: update widest v4
6: add outside2
5: update inside
4: update widest v3
3: add wider, update widest
2: add outside
1: add widest
0: add inside
Check that widening with a newline fails
$ hg tracked --addinclude 'widest
> '
abort: newlines are not allowed in narrowspec paths
[255]
Pulkit Goyal
tests: improve the widening testing in test-narrow-widen*...
r39502 widen the narrow spec to include the wider file
Pulkit Goyal
tests: rename test-narrow-widen-non-ellipsis to match current names...
r39399
Pulkit Goyal
tests: improve the widening testing in test-narrow-widen*...
r39502 $ hg tracked --addinclude wider
Pulkit Goyal
tests: rename test-narrow-widen-non-ellipsis to match current names...
r39399 comparing with ssh://user@dummy/master
searching for changes
adding changesets
adding manifests
adding file changes
Pulkit Goyal
narrow: use diffmatcher to send only new filelogs in non-ellipses widening...
r39701 added 0 changesets with 1 changes to 1 files
Pulkit Goyal
tests: rename test-narrow-widen-non-ellipsis to match current names...
r39399 $ hg tracked
I path:inside
Pulkit Goyal
tests: improve the widening testing in test-narrow-widen*...
r39502 I path:wider
I path:widest/f
Pulkit Goyal
tests: rename test-narrow-widen-non-ellipsis to match current names...
r39399 $ hg update 'desc("add widest")'
2 files updated, 0 files merged, 1 files removed, 0 files unresolved
$ cat widest/f
widest
$ hg update 'desc("add wider, update widest")'
2 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ cat wider/f
wider
$ cat widest/f
widest v2
$ hg update 'desc("update widest v3")'
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ cat widest/f
widest v3
$ hg update 'desc("update widest v4")'
2 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ cat widest/f
widest v4
$ hg log -T "{if(ellipsis, '...')}{rev}: {desc}\n"
7: update widest v4
6: add outside2
5: update inside
4: update widest v3
3: add wider, update widest
2: add outside
1: add widest
0: add inside
separate suite of tests: files from 0-10 modified in changes 0-10. This allows
more obvious precise tests tickling particular corner cases.
$ cd ..
$ hg init upstream
$ cd upstream
$ for x in `$TESTDIR/seq.py 0 10`
> do
> mkdir d$x
> echo $x > d$x/f
> hg add d$x/f
> hg commit -m "add d$x/f"
> done
$ hg log -T "{rev}: {desc}\n"
10: add d10/f
9: add d9/f
8: add d8/f
7: add d7/f
6: add d6/f
5: add d5/f
4: add d4/f
3: add d3/f
2: add d2/f
1: add d1/f
0: add d0/f
make narrow clone with every third node.
$ cd ..
$ hg clone --narrow ssh://user@dummy/upstream narrow2 --include d0 --include d3 --include d6 --include d9
requesting all changes
adding changesets
adding manifests
adding file changes
added 11 changesets with 4 changes to 4 files
new changesets *:* (glob)
updating to branch default
4 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ cd narrow2
$ hg tracked
I path:d0
I path:d3
I path:d6
I path:d9
Raphaël Gomès
tests: use the `--quiet` flag for verify when applicable...
r50720 $ hg verify -q
Pulkit Goyal
tests: rename test-narrow-widen-non-ellipsis to match current names...
r39399 $ hg log -T "{if(ellipsis, '...')}{rev}: {desc}\n"
10: add d10/f
9: add d9/f
8: add d8/f
7: add d7/f
6: add d6/f
5: add d5/f
4: add d4/f
3: add d3/f
2: add d2/f
1: add d1/f
0: add d0/f
$ hg tracked --addinclude d1
comparing with ssh://user@dummy/upstream
searching for changes
adding changesets
adding manifests
adding file changes
Pulkit Goyal
narrow: use diffmatcher to send only new filelogs in non-ellipses widening...
r39701 added 0 changesets with 1 changes to 1 files
Pulkit Goyal
tests: rename test-narrow-widen-non-ellipsis to match current names...
r39399 $ hg tracked
I path:d0
I path:d1
I path:d3
I path:d6
I path:d9
$ hg log -T "{if(ellipsis, '...')}{rev}: {desc}\n"
10: add d10/f
9: add d9/f
8: add d8/f
7: add d7/f
6: add d6/f
5: add d5/f
4: add d4/f
3: add d3/f
2: add d2/f
1: add d1/f
0: add d0/f
Verify shouldn't claim the repo is corrupt after a widen.
Raphaël Gomès
tests: use the `--quiet` flag for verify when applicable...
r50720 $ hg verify -q
Pulkit Goyal
tests: rename test-narrow-widen-non-ellipsis to match current names...
r39399
Widening preserves parent of local commit
$ cd ..
$ hg clone -q --narrow ssh://user@dummy/upstream narrow3 --include d2 -r 2
$ cd narrow3
$ hg log -T "{if(ellipsis, '...')}{rev}: {desc}\n"
2: add d2/f
1: add d1/f
0: add d0/f
$ hg pull -q -r 3
$ hg co -q tip
$ hg pull -q -r 4
$ echo local > d2/f
$ hg ci -m local
created new head
$ hg tracked -q --addinclude d0 --addinclude d9
Widening preserves bookmarks
$ cd ..
$ hg clone -q --narrow ssh://user@dummy/upstream narrow-bookmarks --include d4
$ cd narrow-bookmarks
$ echo local > d4/f
$ hg ci -m local
$ hg bookmarks bookmark
$ hg bookmarks
* bookmark 11:* (glob)
$ hg -q tracked --addinclude d2
$ hg bookmarks
* bookmark 11:* (glob)
$ hg log -r bookmark -T '{desc}\n'
local
Widening that fails can be recovered from
$ cd ..
$ hg clone -q --narrow ssh://user@dummy/upstream interrupted --include d0
$ cd interrupted
$ echo local > d0/f
$ hg ci -m local
$ hg log -T "{if(ellipsis, '...')}{rev}: {desc}\n"
11: local
10: add d10/f
9: add d9/f
8: add d8/f
7: add d7/f
6: add d6/f
5: add d5/f
4: add d4/f
3: add d3/f
2: add d2/f
1: add d1/f
0: add d0/f
$ hg bookmarks bookmark
$ hg --config hooks.pretxnchangegroup.bad=false tracked --addinclude d1
comparing with ssh://user@dummy/upstream
searching for changes
adding changesets
adding manifests
adding file changes
Pulkit Goyal
narrow: use diffmatcher to send only new filelogs in non-ellipses widening...
r39701 added 0 changesets with 1 changes to 1 files
Pulkit Goyal
tests: rename test-narrow-widen-non-ellipsis to match current names...
r39399 $ hg log -T "{if(ellipsis, '...')}{rev}: {desc}\n"
11: local
10: add d10/f
9: add d9/f
8: add d8/f
7: add d7/f
6: add d6/f
5: add d5/f
4: add d4/f
3: add d3/f
2: add d2/f
1: add d1/f
0: add d0/f
$ hg bookmarks
* bookmark 11:* (glob)
$ hg unbundle .hg/strip-backup/*-widen.hg
Matt Harbison
tests: conditionalize narrow-widen error output for Windows
r39428 abort: .hg/strip-backup/*-widen.hg: $ENOTDIR$ (windows !)
Yuya Nishihara
dispatch: quote filename in IOError as well...
r41465 abort: $ENOENT$: '.hg/strip-backup/*-widen.hg' (no-windows !)
Pulkit Goyal
tests: rename test-narrow-widen-non-ellipsis to match current names...
r39399 [255]
$ hg log -T "{if(ellipsis, '...')}{rev}: {desc}\n"
11: local
10: add d10/f
9: add d9/f
8: add d8/f
7: add d7/f
6: add d6/f
5: add d5/f
4: add d4/f
3: add d3/f
2: add d2/f
1: add d1/f
0: add d0/f
$ hg bookmarks
* bookmark 11:* (glob)