##// END OF EJS Templates
store: introduce _matchtrackedpath() and use it to filter store files...
store: introduce _matchtrackedpath() and use it to filter store files This patch introduces a function to filter store files on the basis of the path which they are tracking. The function assumes that the entries can be of two types, 'meta/*' and 'data/*' which means it will just work on revlog based storage and not with another storage ways. For the 'data/*' entries, we remove the 'data/' part and '.i/.d' part from the beginning and the end then pass that to matcher. For the 'meta/*' entries, we remove the 'meta/' and '/00manifest.(i/d)' part from beginning and end then call matcher.visitdir() with it to make sure all the parent directories are also downloaded. Since the storage filtering for narrow stream clones is implemented with this patch, we remove the un-implemented error message, add some more tests and add the treemanifest case to tests too. The tests demonstrate that it works correctly. After this patch, we have now narrow stream clones working. Narrow stream clones are a very important feature for large repositories who have good internet connection because they use streamclones for cloning and if they do normal narrow clone, that takes more time then a full streamclone. Also narrow-stream clone will drastically speed up clone timings. Differential Revision: https://phab.mercurial-scm.org/D5139

File last commit:

r34192:e6b5e732 default
r40529:9aeb9e2d default
Show More
test-show-stack.t
220 lines | 4.3 KiB | text/troff | Tads3Lexer
/ tests / test-show-stack.t
Gregory Szorc
show: implement "stack" view...
r33194 $ cat >> $HGRCPATH << EOF
> [extensions]
> show =
> EOF
$ hg init repo0
$ cd repo0
Empty repo / no checkout results in error
$ hg show stack
abort: stack view only available when there is a working directory
[255]
Stack displays single draft changeset as root revision
$ echo 0 > foo
$ hg -q commit -A -m 'commit 0'
$ hg show stack
Gregory Szorc
show: use consistent (and possibly shorter) node lengths...
r34192 @ 9f17 commit 0
Gregory Szorc
show: implement "stack" view...
r33194
Stack displays multiple draft changesets
$ echo 1 > foo
$ hg commit -m 'commit 1'
$ echo 2 > foo
$ hg commit -m 'commit 2'
$ echo 3 > foo
$ hg commit -m 'commit 3'
$ echo 4 > foo
$ hg commit -m 'commit 4'
$ hg show stack
Gregory Szorc
show: use consistent (and possibly shorter) node lengths...
r34192 @ 2737 commit 4
o d1a6 commit 3
o 128c commit 2
o 181c commit 1
o 9f17 commit 0
Gregory Szorc
show: implement "stack" view...
r33194
Public parent of draft base is displayed, separated from stack
$ hg phase --public -r 0
$ hg show stack
Gregory Szorc
show: use consistent (and possibly shorter) node lengths...
r34192 @ 2737 commit 4
o d1a6 commit 3
o 128c commit 2
o 181c commit 1
Gregory Szorc
show: implement "stack" view...
r33194 / (stack base)
Gregory Szorc
show: use consistent (and possibly shorter) node lengths...
r34192 o 9f17 commit 0
Gregory Szorc
show: implement "stack" view...
r33194
$ hg phase --public -r 1
$ hg show stack
Gregory Szorc
show: use consistent (and possibly shorter) node lengths...
r34192 @ 2737 commit 4
o d1a6 commit 3
o 128c commit 2
Gregory Szorc
show: implement "stack" view...
r33194 / (stack base)
Gregory Szorc
show: use consistent (and possibly shorter) node lengths...
r34192 o 181c commit 1
Gregory Szorc
show: implement "stack" view...
r33194
Draft descendants are shown
$ hg -q up 2
$ hg show stack
Gregory Szorc
show: use consistent (and possibly shorter) node lengths...
r34192 o 2737 commit 4
o d1a6 commit 3
@ 128c commit 2
Gregory Szorc
show: implement "stack" view...
r33194 / (stack base)
Gregory Szorc
show: use consistent (and possibly shorter) node lengths...
r34192 o 181c commit 1
Gregory Szorc
show: implement "stack" view...
r33194
$ hg -q up 3
$ hg show stack
Gregory Szorc
show: use consistent (and possibly shorter) node lengths...
r34192 o 2737 commit 4
@ d1a6 commit 3
o 128c commit 2
Gregory Szorc
show: implement "stack" view...
r33194 / (stack base)
Gregory Szorc
show: use consistent (and possibly shorter) node lengths...
r34192 o 181c commit 1
Gregory Szorc
show: implement "stack" view...
r33194
working dir on public changeset should display special message
$ hg -q up 1
$ hg show stack
Gregory Szorc
show: tweak warning message...
r33205 (empty stack; working directory parent is a published changeset)
Gregory Szorc
show: implement "stack" view...
r33194
Branch point in descendants displayed at top of graph
$ hg -q up 3
$ echo b > foo
$ hg commit -m 'commit 5 (new dag branch)'
created new head
$ hg -q up 2
$ hg show stack
\ / (multiple children)
|
Gregory Szorc
show: use consistent (and possibly shorter) node lengths...
r34192 o d1a6 commit 3
@ 128c commit 2
Gregory Szorc
show: implement "stack" view...
r33194 / (stack base)
Gregory Szorc
show: use consistent (and possibly shorter) node lengths...
r34192 o 181c commit 1
Gregory Szorc
show: implement "stack" view...
r33194
$ cd ..
Base is stopped at merges
$ hg init merge-base
$ cd merge-base
$ echo 0 > foo
$ hg -q commit -A -m initial
$ echo h1 > foo
$ hg commit -m 'head 1'
$ hg -q up 0
$ echo h2 > foo
$ hg -q commit -m 'head 2'
$ hg phase --public -r 0:tip
$ hg -q up 1
$ hg merge -t :local 2
0 files updated, 1 files merged, 0 files removed, 0 files unresolved
(branch merge, don't forget to commit)
$ hg commit -m 'merge heads'
TODO doesn't yet handle case where wdir is a draft merge
$ hg show stack
Gregory Szorc
show: use consistent (and possibly shorter) node lengths...
r34192 @ 8ee9 merge heads
Gregory Szorc
show: implement "stack" view...
r33194 / (stack base)
Gregory Szorc
show: use consistent (and possibly shorter) node lengths...
r34192 o 5947 head 1
Gregory Szorc
show: implement "stack" view...
r33194
$ echo d1 > foo
$ hg commit -m 'draft 1'
$ echo d2 > foo
$ hg commit -m 'draft 2'
$ hg show stack
Gregory Szorc
show: use consistent (and possibly shorter) node lengths...
r34192 @ 430d draft 2
o 787b draft 1
Gregory Szorc
show: implement "stack" view...
r33194 / (stack base)
Gregory Szorc
show: use consistent (and possibly shorter) node lengths...
r34192 o 8ee9 merge heads
Gregory Szorc
show: implement "stack" view...
r33194
$ cd ..
Now move on to stacks when there are more commits after the base branchpoint
$ hg init public-rebase
$ cd public-rebase
$ echo 0 > foo
$ hg -q commit -A -m 'base'
$ hg phase --public -r .
$ echo d1 > foo
$ hg commit -m 'draft 1'
$ echo d2 > foo
$ hg commit -m 'draft 2'
$ hg -q up 0
$ echo 1 > foo
$ hg commit -m 'new 1'
created new head
$ echo 2 > foo
$ hg commit -m 'new 2'
$ hg -q up 2
Newer draft heads don't impact output
$ hg show stack
Gregory Szorc
show: use consistent (and possibly shorter) node lengths...
r34192 @ eaff draft 2
o 2b21 draft 1
Gregory Szorc
show: implement "stack" view...
r33194 / (stack base)
Gregory Szorc
show: use consistent (and possibly shorter) node lengths...
r34192 o b66b base
Gregory Szorc
show: implement "stack" view...
r33194
Newer public heads are rendered
$ hg phase --public -r '::tip'
$ hg show stack
Gregory Szorc
show: use consistent (and possibly shorter) node lengths...
r34192 o baa4 new 2
Gregory Szorc
show: implement "stack" view...
r33194 / (2 commits ahead)
:
: (stack head)
Gregory Szorc
show: use consistent (and possibly shorter) node lengths...
r34192 : @ eaff draft 2
: o 2b21 draft 1
Gregory Szorc
show: implement "stack" view...
r33194 :/ (stack base)
Gregory Szorc
show: use consistent (and possibly shorter) node lengths...
r34192 o b66b base
Gregory Szorc
show: implement "stack" view...
r33194
If rebase is available, we show a hint how to rebase to that head
$ hg --config extensions.rebase= show stack
Gregory Szorc
show: use consistent (and possibly shorter) node lengths...
r34192 o baa4 new 2
/ (2 commits ahead; hg rebase --source 2b21 --dest baa4)
Gregory Szorc
show: implement "stack" view...
r33194 :
: (stack head)
Gregory Szorc
show: use consistent (and possibly shorter) node lengths...
r34192 : @ eaff draft 2
: o 2b21 draft 1
Gregory Szorc
show: implement "stack" view...
r33194 :/ (stack base)
Gregory Szorc
show: use consistent (and possibly shorter) node lengths...
r34192 o b66b base
Gregory Szorc
show: implement "stack" view...
r33194
Similar tests but for multiple heads
$ hg -q up 0
$ echo h2 > foo
$ hg -q commit -m 'new head 2'
$ hg phase --public -r .
$ hg -q up 2
$ hg show stack
Gregory Szorc
show: use consistent (and possibly shorter) node lengths...
r34192 o baa4 new 2
Gregory Szorc
show: implement "stack" view...
r33194 / (2 commits ahead)
Gregory Szorc
show: use consistent (and possibly shorter) node lengths...
r34192 : o 9a84 new head 2
Gregory Szorc
show: implement "stack" view...
r33194 :/ (1 commits ahead)
:
: (stack head)
Gregory Szorc
show: use consistent (and possibly shorter) node lengths...
r34192 : @ eaff draft 2
: o 2b21 draft 1
Gregory Szorc
show: implement "stack" view...
r33194 :/ (stack base)
Gregory Szorc
show: use consistent (and possibly shorter) node lengths...
r34192 o b66b base
Gregory Szorc
show: implement "stack" view...
r33194
$ hg --config extensions.rebase= show stack
Gregory Szorc
show: use consistent (and possibly shorter) node lengths...
r34192 o baa4 new 2
/ (2 commits ahead; hg rebase --source 2b21 --dest baa4)
: o 9a84 new head 2
:/ (1 commits ahead; hg rebase --source 2b21 --dest 9a84)
Gregory Szorc
show: implement "stack" view...
r33194 :
: (stack head)
Gregory Szorc
show: use consistent (and possibly shorter) node lengths...
r34192 : @ eaff draft 2
: o 2b21 draft 1
Gregory Szorc
show: implement "stack" view...
r33194 :/ (stack base)
Gregory Szorc
show: use consistent (and possibly shorter) node lengths...
r34192 o b66b base