##// END OF EJS Templates
transaction: issue "new obsmarkers" message at the end of the transaction...
transaction: issue "new obsmarkers" message at the end of the transaction Instead of making bundle2 code responsible for this, it seems better to have it handled and the transaction level. First, it means the message will be more consistently printed. Second it means we won't spam the message over and over if the data arrive in multiple piece. Third, we are planning to move other similar message at the same level (for the same reason) so having them all at the same location will help us to control the order they are displayed.

File last commit:

r43154:775224e2 default
r43164:38392d5b default
Show More
test-narrow-widen-no-ellipsis.t
425 lines | 9.5 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
$ ls
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
Matt Harbison
tests: glob over some quoting differences in test-narrow-widen-no-ellipsis.t
r39745 running python "*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
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: add debug output in test-narrow-widen-no-ellipsis.t...
r39707 bundle2-input-part: total payload size * (glob)
Pulkit Goyal
narrow: the first version of narrow_widen wireprotocol command...
r40106 bundle2-input-bundle: 0 parts total
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
$ hg verify
checking changesets
checking manifests
checking directory manifests (tree !)
crosschecking files in changesets and manifests
checking files
Meirambek Omyrzak
verify: make output less confusing (issue5924)...
r39525 checked 11 changesets with 4 changes to 4 files
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.
$ hg verify
checking changesets
checking manifests
checking directory manifests (tree !)
crosschecking files in changesets and manifests
checking files
Meirambek Omyrzak
verify: make output less confusing (issue5924)...
r39525 checked 11 changesets with 5 changes to 5 files
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)