Mercurial > hg
annotate tests/test-hgk.t @ 30866:5249b6470de9
verify: replace _validpath() by matcher
The verifier calls out to _validpath() to check if it should verify
that path and the narrowhg extension overrides _validpath() to tell
the verifier to skip that path. In treemanifest repos, the verifier
calls the same method to check if it should visit a
directory. However, the decision to visit a directory is different
from the condition that it's a matching path, and narrowhg was working
around it by returning True from its _validpath() override if *either*
was true.
Similar to how one can do "hg files -I foo/bar/ -X foo/" (making the
include pointless), narrowhg can be configured to track the same
paths. In that case match("foo/bar/baz") would be false, but
match.visitdir("foo/bar/baz") turns out to be true, causing verify to
fail. This may seem like a bug in visitdir(), but it's explicitly
documented to be undefined for subdirectories of excluded
directories. When using treemanifests, the walk would not descend into
foo/, so verification would pass. However, when using flat manifests,
there is no recursive directory walk and the file path "foo/bar/baz"
would be passed to _validpath() without "foo/" (actually without the
slash) being passed first. As explained above, _validpath() would
return true for the file path and "hg verify" would fail.
Replacing the _validpath() method by a matcher seems like the obvious
fix. Narrowhg can then pass in its own matcher and not have to
conflate the two matching functions (for dirs and files). I think it
also makes the code clearer.
author | Martin von Zweigbergk <martinvonz@google.com> |
---|---|
date | Mon, 23 Jan 2017 10:48:55 -0800 |
parents | 5fb1fc2e1281 |
children |
rev | line source |
---|---|
12431 | 1 Minimal hgk check |
6800
cc7114d96548
hgk: ctx.parents() problem introduced by 2d54e7c1e69d
Patrick Mezard <pmezard@gmail.com>
parents:
diff
changeset
|
2 |
12431 | 3 $ echo "[extensions]" >> $HGRCPATH |
4 $ echo "hgk=" >> $HGRCPATH | |
5 $ hg init repo | |
6 $ cd repo | |
7 $ echo a > a | |
8 $ hg ci -Am adda | |
9 adding a | |
10 $ hg debug-cat-file commit 0 | |
11 tree a0c8bcbbb45c | |
12 parent 000000000000 | |
13 author test 0 0 | |
14 revision 0 | |
15 branch default | |
18807
cf72fd8b3072
hgk: add support for phases
Andrew Shadura <bugzilla@tut.by>
parents:
17959
diff
changeset
|
16 phase draft |
12431 | 17 |
18 adda | |
23451
5fb1fc2e1281
hgk: don't honor whitespace and format-changing diffopts
Siddharth Agarwal <sid0@fb.com>
parents:
18807
diff
changeset
|
19 $ echo b > b |
5fb1fc2e1281
hgk: don't honor whitespace and format-changing diffopts
Siddharth Agarwal <sid0@fb.com>
parents:
18807
diff
changeset
|
20 $ hg ci -Am addb |
5fb1fc2e1281
hgk: don't honor whitespace and format-changing diffopts
Siddharth Agarwal <sid0@fb.com>
parents:
18807
diff
changeset
|
21 adding b |
5fb1fc2e1281
hgk: don't honor whitespace and format-changing diffopts
Siddharth Agarwal <sid0@fb.com>
parents:
18807
diff
changeset
|
22 $ hg log -T '{node}\n' |
5fb1fc2e1281
hgk: don't honor whitespace and format-changing diffopts
Siddharth Agarwal <sid0@fb.com>
parents:
18807
diff
changeset
|
23 102a90ea7b4a3361e4082ed620918c261189a36a |
5fb1fc2e1281
hgk: don't honor whitespace and format-changing diffopts
Siddharth Agarwal <sid0@fb.com>
parents:
18807
diff
changeset
|
24 07f4944404050f47db2e5c5071e0e84e7a27bba9 |
5fb1fc2e1281
hgk: don't honor whitespace and format-changing diffopts
Siddharth Agarwal <sid0@fb.com>
parents:
18807
diff
changeset
|
25 |
5fb1fc2e1281
hgk: don't honor whitespace and format-changing diffopts
Siddharth Agarwal <sid0@fb.com>
parents:
18807
diff
changeset
|
26 $ hg debug-diff-tree 07f494440405 102a90ea7b4a |
5fb1fc2e1281
hgk: don't honor whitespace and format-changing diffopts
Siddharth Agarwal <sid0@fb.com>
parents:
18807
diff
changeset
|
27 :000000 100664 000000000000 1e88685f5dde N b b |
5fb1fc2e1281
hgk: don't honor whitespace and format-changing diffopts
Siddharth Agarwal <sid0@fb.com>
parents:
18807
diff
changeset
|
28 $ hg debug-diff-tree 07f494440405 102a90ea7b4a --patch |
5fb1fc2e1281
hgk: don't honor whitespace and format-changing diffopts
Siddharth Agarwal <sid0@fb.com>
parents:
18807
diff
changeset
|
29 diff --git a/b b/b |
5fb1fc2e1281
hgk: don't honor whitespace and format-changing diffopts
Siddharth Agarwal <sid0@fb.com>
parents:
18807
diff
changeset
|
30 new file mode 100644 |
5fb1fc2e1281
hgk: don't honor whitespace and format-changing diffopts
Siddharth Agarwal <sid0@fb.com>
parents:
18807
diff
changeset
|
31 --- /dev/null |
5fb1fc2e1281
hgk: don't honor whitespace and format-changing diffopts
Siddharth Agarwal <sid0@fb.com>
parents:
18807
diff
changeset
|
32 +++ b/b |
5fb1fc2e1281
hgk: don't honor whitespace and format-changing diffopts
Siddharth Agarwal <sid0@fb.com>
parents:
18807
diff
changeset
|
33 @@ -0,0 +1,1 @@ |
5fb1fc2e1281
hgk: don't honor whitespace and format-changing diffopts
Siddharth Agarwal <sid0@fb.com>
parents:
18807
diff
changeset
|
34 +b |
5fb1fc2e1281
hgk: don't honor whitespace and format-changing diffopts
Siddharth Agarwal <sid0@fb.com>
parents:
18807
diff
changeset
|
35 |
5fb1fc2e1281
hgk: don't honor whitespace and format-changing diffopts
Siddharth Agarwal <sid0@fb.com>
parents:
18807
diff
changeset
|
36 Ensure that diff-tree output isn't affected by diffopts |
5fb1fc2e1281
hgk: don't honor whitespace and format-changing diffopts
Siddharth Agarwal <sid0@fb.com>
parents:
18807
diff
changeset
|
37 $ hg --config diff.noprefix=True debug-diff-tree 07f494440405 102a90ea7b4a |
5fb1fc2e1281
hgk: don't honor whitespace and format-changing diffopts
Siddharth Agarwal <sid0@fb.com>
parents:
18807
diff
changeset
|
38 :000000 100664 000000000000 1e88685f5dde N b b |
5fb1fc2e1281
hgk: don't honor whitespace and format-changing diffopts
Siddharth Agarwal <sid0@fb.com>
parents:
18807
diff
changeset
|
39 $ hg --config diff.noprefix=True debug-diff-tree --patch 07f494440405 102a90ea7b4a |
5fb1fc2e1281
hgk: don't honor whitespace and format-changing diffopts
Siddharth Agarwal <sid0@fb.com>
parents:
18807
diff
changeset
|
40 diff --git a/b b/b |
5fb1fc2e1281
hgk: don't honor whitespace and format-changing diffopts
Siddharth Agarwal <sid0@fb.com>
parents:
18807
diff
changeset
|
41 new file mode 100644 |
5fb1fc2e1281
hgk: don't honor whitespace and format-changing diffopts
Siddharth Agarwal <sid0@fb.com>
parents:
18807
diff
changeset
|
42 --- /dev/null |
5fb1fc2e1281
hgk: don't honor whitespace and format-changing diffopts
Siddharth Agarwal <sid0@fb.com>
parents:
18807
diff
changeset
|
43 +++ b/b |
5fb1fc2e1281
hgk: don't honor whitespace and format-changing diffopts
Siddharth Agarwal <sid0@fb.com>
parents:
18807
diff
changeset
|
44 @@ -0,0 +1,1 @@ |
5fb1fc2e1281
hgk: don't honor whitespace and format-changing diffopts
Siddharth Agarwal <sid0@fb.com>
parents:
18807
diff
changeset
|
45 +b |
16913
f2719b387380
tests: add missing trailing 'cd ..'
Mads Kiilerich <mads@kiilerich.com>
parents:
12431
diff
changeset
|
46 |
f2719b387380
tests: add missing trailing 'cd ..'
Mads Kiilerich <mads@kiilerich.com>
parents:
12431
diff
changeset
|
47 $ cd .. |