##// END OF EJS Templates
debugobsolete: also issue the "new obsmarkers" messsage...
debugobsolete: also issue the "new obsmarkers" messsage We are going to improve the way this message is issued in the core codebase. This will make it appears for `hg debugobsolete` too. Since this seems like a good idea, we make the output change in a previous changesets to clarify the next changeset.

File last commit:

r42605:c767e655 default
r43163:34a46d48 default
Show More
test-narrow-widen.t
363 lines | 8.6 KiB | text/troff | Tads3Lexer
/ tests / test-narrow-widen.t
Augie Fackler
tests: fold narrow treemanifest tests into main test file using testcases...
r36101 #testcases flat tree
Augie Fackler
narrow: import experimental extension from narrowhg revision cb51d673e9c5...
r36096 $ . "$TESTDIR/narrow-library.sh"
Augie Fackler
tests: fold narrow treemanifest tests into main test file using testcases...
r36101 #if tree
$ cat << EOF >> $HGRCPATH
> [experimental]
> treemanifest = 1
> EOF
#endif
Augie Fackler
narrow: import experimental extension from narrowhg revision cb51d673e9c5...
r36096 $ hg init master
$ cd master
$ cat >> .hg/hgrc <<EOF
> [narrow]
> serveellipses=True
> EOF
$ 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
$ hg clone --narrow ssh://user@dummy/master narrow --include inside
requesting all changes
adding changesets
adding manifests
adding file changes
added 2 changesets with 1 changes to 1 files
new changesets *:* (glob)
updating to branch default
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ cd narrow
$ hg tracked
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'
Martin von Zweigbergk
tests: use {rev} instead of {node|short} and (glob) in narrow tests...
r39397 $ 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
Augie Fackler
narrow: import experimental extension from narrowhg revision cb51d673e9c5...
r36096
$ 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
Augie Fackler
narrow: import experimental extension from narrowhg revision cb51d673e9c5...
r36096 added upstream revisions.
$ cd narrow
Pulkit Goyal
tests: improve the widening testing in test-narrow-widen*...
r39502 $ hg tracked --addinclude widest/f
Augie Fackler
narrow: import experimental extension from narrowhg revision cb51d673e9c5...
r36096 comparing with ssh://user@dummy/master
searching for changes
saved backup bundle to $TESTTMP/narrow/.hg/strip-backup/*-widen.hg (glob)
adding changesets
adding manifests
adding file changes
Pulkit Goyal
tests: improve the widening testing in test-narrow-widen*...
r39502 added 3 changesets with 2 changes to 2 files
Augie Fackler
narrow: import experimental extension from narrowhg revision cb51d673e9c5...
r36096 $ 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
Augie Fackler
narrow: import experimental extension from narrowhg revision cb51d673e9c5...
r36096
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
Augie Fackler
narrow: import experimental extension from narrowhg revision cb51d673e9c5...
r36096 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
Augie Fackler
narrow: import experimental extension from narrowhg revision cb51d673e9c5...
r36096
$ 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
Augie Fackler
narrow: import experimental extension from narrowhg revision cb51d673e9c5...
r36096 $ cat inside/f
inside v2
Martin von Zweigbergk
tests: use {rev} instead of {node|short} and (glob) in narrow tests...
r39397 $ hg log -T "{if(ellipsis, '...')}{rev}: {desc}\n"
Pulkit Goyal
tests: improve the widening testing in test-narrow-widen*...
r39502 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
Martin von Zweigbergk
tests: use {rev} instead of {node|short} and (glob) in narrow tests...
r39397 0: add inside
Augie Fackler
narrow: import experimental extension from narrowhg revision cb51d673e9c5...
r36096
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
Augie Fackler
narrow: import experimental extension from narrowhg revision cb51d673e9c5...
r36096
Pulkit Goyal
tests: improve the widening testing in test-narrow-widen*...
r39502 $ hg tracked --addinclude wider
Augie Fackler
narrow: import experimental extension from narrowhg revision cb51d673e9c5...
r36096 comparing with ssh://user@dummy/master
searching for changes
saved backup bundle to $TESTTMP/narrow/.hg/strip-backup/*-widen.hg (glob)
adding changesets
adding manifests
adding file changes
added 8 changesets with 7 changes to 3 files
$ hg tracked
I path:inside
Pulkit Goyal
tests: improve the widening testing in test-narrow-widen*...
r39502 I path:wider
I path:widest/f
Augie Fackler
narrow: import experimental extension from narrowhg revision cb51d673e9c5...
r36096 $ 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
Martin von Zweigbergk
tests: use {rev} instead of {node|short} and (glob) in narrow tests...
r39397 $ 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
Augie Fackler
narrow: import experimental extension from narrowhg revision cb51d673e9c5...
r36096
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
$ cat >> .hg/hgrc <<EOF
> [narrow]
> serveellipses=True
> EOF
$ 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
Martin von Zweigbergk
tests: use {rev} instead of {node|short} and (glob) in narrow tests...
r39397 $ 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
Augie Fackler
narrow: import experimental extension from narrowhg revision cb51d673e9c5...
r36096
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 8 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
Augie Fackler
tests: fold narrow treemanifest tests into main test file using testcases...
r36101 checking directory manifests (tree !)
Augie Fackler
narrow: import experimental extension from narrowhg revision cb51d673e9c5...
r36096 crosschecking files in changesets and manifests
checking files
Meirambek Omyrzak
verify: make output less confusing (issue5924)...
r39525 checked 8 changesets with 4 changes to 4 files
Martin von Zweigbergk
tests: use {rev} instead of {node|short} and (glob) in narrow tests...
r39397 $ hg log -T "{if(ellipsis, '...')}{rev}: {desc}\n"
...7: add d10/f
6: add d9/f
...5: add d8/f
4: add d6/f
...3: add d5/f
2: add d3/f
...1: add d2/f
0: add d0/f
Augie Fackler
narrow: import experimental extension from narrowhg revision cb51d673e9c5...
r36096 $ hg tracked --addinclude d1
comparing with ssh://user@dummy/upstream
searching for changes
saved backup bundle to $TESTTMP/narrow2/.hg/strip-backup/*-widen.hg (glob)
adding changesets
adding manifests
adding file changes
added 9 changesets with 5 changes to 5 files
$ hg tracked
I path:d0
I path:d1
I path:d3
I path:d6
I path:d9
Martin von Zweigbergk
tests: use {rev} instead of {node|short} and (glob) in narrow tests...
r39397 $ hg log -T "{if(ellipsis, '...')}{rev}: {desc}\n"
...8: add d10/f
7: add d9/f
...6: add d8/f
5: add d6/f
...4: add d5/f
3: add d3/f
...2: add d2/f
1: add d1/f
0: add d0/f
Augie Fackler
narrow: import experimental extension from narrowhg revision cb51d673e9c5...
r36096
Verify shouldn't claim the repo is corrupt after a widen.
$ hg verify
checking changesets
checking manifests
Augie Fackler
tests: fold narrow treemanifest tests into main test file using testcases...
r36101 checking directory manifests (tree !)
Augie Fackler
narrow: import experimental extension from narrowhg revision cb51d673e9c5...
r36096 crosschecking files in changesets and manifests
checking files
Meirambek Omyrzak
verify: make output less confusing (issue5924)...
r39525 checked 9 changesets with 5 changes to 5 files
Augie Fackler
narrow: import experimental extension from narrowhg revision cb51d673e9c5...
r36096
Widening preserves parent of local commit
$ cd ..
$ hg clone -q --narrow ssh://user@dummy/upstream narrow3 --include d2 -r 2
$ cd narrow3
Martin von Zweigbergk
tests: use {rev} instead of {node|short} and (glob) in narrow tests...
r39397 $ hg log -T "{if(ellipsis, '...')}{rev}: {desc}\n"
1: add d2/f
...0: add d1/f
Augie Fackler
narrow: import experimental extension from narrowhg revision cb51d673e9c5...
r36096 $ 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 3:* (glob)
$ hg -q tracked --addinclude d2
$ hg bookmarks
* bookmark 5:* (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"
2: local
...1: add d10/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
saved backup bundle to $TESTTMP/interrupted/.hg/strip-backup/*-widen.hg (glob)
adding changesets
adding manifests
adding file changes
added 3 changesets with 2 changes to 2 files
transaction abort!
rollback completed
abort: pretxnchangegroup.bad hook exited with status 1
[255]
$ hg log -T "{if(ellipsis, '...')}{rev}: {desc}\n"
$ hg bookmarks
no bookmarks set
$ hg unbundle .hg/strip-backup/*-widen.hg
adding changesets
adding manifests
adding file changes
added 3 changesets with 2 changes to 1 files
new changesets *:* (glob)
(run 'hg update' to get a working copy)
$ hg log -T "{if(ellipsis, '...')}{rev}: {desc}\n"
2: local
...1: add d10/f
0: add d0/f
$ hg bookmarks
* bookmark 2:* (glob)