Mercurial > hg
annotate tests/test-narrow-commit.t @ 47565:00ae1fb6c459
cmdutil: fix newandmodified file accounting for --interactive commits
`originalchunks` is a misleading name, because it only contains header objects, which are flattened to selected hunks by the filter function. As such, `chunks not in originalchunks` is always True and misleading, because hunk objects never compare equal to header objects. This change fixes the internal naming and removes the useless parameter from the method.
This change also fixes issue6533, by considering the filtered headers, rather than the hunks, when determining new and modified files. If a file is renamed + edited, and the edited hunks are deselected (but the file is not), the filtered chunks will contain a header for the file (because it's .special()) but but no hunks.
Differential Revision: https://phab.mercurial-scm.org/D10936
author | Daniel Ploch <dploch@google.com> |
---|---|
date | Fri, 02 Jul 2021 11:44:13 -0700 |
parents | 3984409e144b |
children | cc33deae66a1 |
rev | line source |
---|---|
36084
dc01484606da
tests: fold narrow treemanifest tests into main test file using testcases
Augie Fackler <augie@google.com>
parents:
36079
diff
changeset
|
1 #testcases flat tree |
dc01484606da
tests: fold narrow treemanifest tests into main test file using testcases
Augie Fackler <augie@google.com>
parents:
36079
diff
changeset
|
2 |
36079
a2a6e724d61a
narrow: import experimental extension from narrowhg revision cb51d673e9c5
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
3 $ . "$TESTDIR/narrow-library.sh" |
a2a6e724d61a
narrow: import experimental extension from narrowhg revision cb51d673e9c5
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
4 |
36084
dc01484606da
tests: fold narrow treemanifest tests into main test file using testcases
Augie Fackler <augie@google.com>
parents:
36079
diff
changeset
|
5 #if tree |
dc01484606da
tests: fold narrow treemanifest tests into main test file using testcases
Augie Fackler <augie@google.com>
parents:
36079
diff
changeset
|
6 $ cat << EOF >> $HGRCPATH |
dc01484606da
tests: fold narrow treemanifest tests into main test file using testcases
Augie Fackler <augie@google.com>
parents:
36079
diff
changeset
|
7 > [experimental] |
dc01484606da
tests: fold narrow treemanifest tests into main test file using testcases
Augie Fackler <augie@google.com>
parents:
36079
diff
changeset
|
8 > treemanifest = 1 |
dc01484606da
tests: fold narrow treemanifest tests into main test file using testcases
Augie Fackler <augie@google.com>
parents:
36079
diff
changeset
|
9 > EOF |
dc01484606da
tests: fold narrow treemanifest tests into main test file using testcases
Augie Fackler <augie@google.com>
parents:
36079
diff
changeset
|
10 #endif |
dc01484606da
tests: fold narrow treemanifest tests into main test file using testcases
Augie Fackler <augie@google.com>
parents:
36079
diff
changeset
|
11 |
36079
a2a6e724d61a
narrow: import experimental extension from narrowhg revision cb51d673e9c5
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
12 create full repo |
a2a6e724d61a
narrow: import experimental extension from narrowhg revision cb51d673e9c5
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
13 |
a2a6e724d61a
narrow: import experimental extension from narrowhg revision cb51d673e9c5
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
14 $ hg init master |
a2a6e724d61a
narrow: import experimental extension from narrowhg revision cb51d673e9c5
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
15 $ cd master |
a2a6e724d61a
narrow: import experimental extension from narrowhg revision cb51d673e9c5
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
16 |
a2a6e724d61a
narrow: import experimental extension from narrowhg revision cb51d673e9c5
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
17 $ mkdir inside |
a2a6e724d61a
narrow: import experimental extension from narrowhg revision cb51d673e9c5
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
18 $ echo inside > inside/f1 |
a2a6e724d61a
narrow: import experimental extension from narrowhg revision cb51d673e9c5
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
19 $ mkdir outside |
a2a6e724d61a
narrow: import experimental extension from narrowhg revision cb51d673e9c5
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
20 $ echo outside > outside/f1 |
a2a6e724d61a
narrow: import experimental extension from narrowhg revision cb51d673e9c5
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
21 $ hg ci -Aqm 'initial' |
a2a6e724d61a
narrow: import experimental extension from narrowhg revision cb51d673e9c5
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
22 |
a2a6e724d61a
narrow: import experimental extension from narrowhg revision cb51d673e9c5
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
23 $ echo modified > inside/f1 |
a2a6e724d61a
narrow: import experimental extension from narrowhg revision cb51d673e9c5
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
24 $ hg ci -qm 'modify inside' |
a2a6e724d61a
narrow: import experimental extension from narrowhg revision cb51d673e9c5
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
25 |
a2a6e724d61a
narrow: import experimental extension from narrowhg revision cb51d673e9c5
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
26 $ echo modified > outside/f1 |
a2a6e724d61a
narrow: import experimental extension from narrowhg revision cb51d673e9c5
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
27 $ hg ci -qm 'modify outside' |
a2a6e724d61a
narrow: import experimental extension from narrowhg revision cb51d673e9c5
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
28 |
a2a6e724d61a
narrow: import experimental extension from narrowhg revision cb51d673e9c5
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
29 $ cd .. |
a2a6e724d61a
narrow: import experimental extension from narrowhg revision cb51d673e9c5
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
30 |
37138
4d63f3bc1e1a
lfs: respect narrowmatcher when testing to add 'lfs' requirement (issue5794)
Matt Harbison <matt_harbison@yahoo.com>
parents:
36210
diff
changeset
|
31 (The lfs extension does nothing here, but this test ensures that its hook that |
4d63f3bc1e1a
lfs: respect narrowmatcher when testing to add 'lfs' requirement (issue5794)
Matt Harbison <matt_harbison@yahoo.com>
parents:
36210
diff
changeset
|
32 determines whether to add the lfs requirement, respects the narrow boundaries.) |
4d63f3bc1e1a
lfs: respect narrowmatcher when testing to add 'lfs' requirement (issue5794)
Matt Harbison <matt_harbison@yahoo.com>
parents:
36210
diff
changeset
|
33 |
4d63f3bc1e1a
lfs: respect narrowmatcher when testing to add 'lfs' requirement (issue5794)
Matt Harbison <matt_harbison@yahoo.com>
parents:
36210
diff
changeset
|
34 $ hg --config extensions.lfs= clone --narrow ssh://user@dummy/master narrow \ |
4d63f3bc1e1a
lfs: respect narrowmatcher when testing to add 'lfs' requirement (issue5794)
Matt Harbison <matt_harbison@yahoo.com>
parents:
36210
diff
changeset
|
35 > --include inside |
36079
a2a6e724d61a
narrow: import experimental extension from narrowhg revision cb51d673e9c5
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
36 requesting all changes |
a2a6e724d61a
narrow: import experimental extension from narrowhg revision cb51d673e9c5
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
37 adding changesets |
a2a6e724d61a
narrow: import experimental extension from narrowhg revision cb51d673e9c5
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
38 adding manifests |
a2a6e724d61a
narrow: import experimental extension from narrowhg revision cb51d673e9c5
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
39 adding file changes |
a2a6e724d61a
narrow: import experimental extension from narrowhg revision cb51d673e9c5
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
40 added 3 changesets with 2 changes to 1 files |
a2a6e724d61a
narrow: import experimental extension from narrowhg revision cb51d673e9c5
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
41 new changesets *:* (glob) |
a2a6e724d61a
narrow: import experimental extension from narrowhg revision cb51d673e9c5
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
42 updating to branch default |
a2a6e724d61a
narrow: import experimental extension from narrowhg revision cb51d673e9c5
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
43 1 files updated, 0 files merged, 0 files removed, 0 files unresolved |
a2a6e724d61a
narrow: import experimental extension from narrowhg revision cb51d673e9c5
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
44 $ cd narrow |
a2a6e724d61a
narrow: import experimental extension from narrowhg revision cb51d673e9c5
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
45 |
a2a6e724d61a
narrow: import experimental extension from narrowhg revision cb51d673e9c5
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
46 $ hg update -q 0 |
a2a6e724d61a
narrow: import experimental extension from narrowhg revision cb51d673e9c5
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
47 |
a2a6e724d61a
narrow: import experimental extension from narrowhg revision cb51d673e9c5
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
48 Can not modify dirstate outside |
a2a6e724d61a
narrow: import experimental extension from narrowhg revision cb51d673e9c5
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
49 |
a2a6e724d61a
narrow: import experimental extension from narrowhg revision cb51d673e9c5
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
50 $ mkdir outside |
a2a6e724d61a
narrow: import experimental extension from narrowhg revision cb51d673e9c5
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
51 $ touch outside/f1 |
38262
7c3a59e2971b
debugwalk: show matcher output only if -v/--verbose
Yuya Nishihara <yuya@tcha.org>
parents:
37138
diff
changeset
|
52 $ hg debugwalk -v -I 'relglob:f1' |
38263
dbf31732ef64
debugwalk: pretty-print nested matcher
Yuya Nishihara <yuya@tcha.org>
parents:
38262
diff
changeset
|
53 * matcher: |
40782
3984409e144b
match: drop unnecessary wrapping of regex in group
Martin von Zweigbergk <martinvonz@google.com>
parents:
40084
diff
changeset
|
54 <includematcher includes='(?:|.*/)f1(?:/|$)'> |
36079
a2a6e724d61a
narrow: import experimental extension from narrowhg revision cb51d673e9c5
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
55 f inside/f1 inside/f1 |
39936
277a6fb460a6
tests: add test showing that paths outside narrowspec are not added
Martin von Zweigbergk <martinvonz@google.com>
parents:
39760
diff
changeset
|
56 $ hg add . |
36079
a2a6e724d61a
narrow: import experimental extension from narrowhg revision cb51d673e9c5
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
57 $ hg add outside/f1 |
a2a6e724d61a
narrow: import experimental extension from narrowhg revision cb51d673e9c5
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
58 abort: cannot track 'outside/f1' - it is outside the narrow clone |
a2a6e724d61a
narrow: import experimental extension from narrowhg revision cb51d673e9c5
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
59 [255] |
a2a6e724d61a
narrow: import experimental extension from narrowhg revision cb51d673e9c5
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
60 $ touch outside/f3 |
a2a6e724d61a
narrow: import experimental extension from narrowhg revision cb51d673e9c5
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
61 $ hg add outside/f3 |
a2a6e724d61a
narrow: import experimental extension from narrowhg revision cb51d673e9c5
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
62 abort: cannot track 'outside/f3' - it is outside the narrow clone |
a2a6e724d61a
narrow: import experimental extension from narrowhg revision cb51d673e9c5
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
63 [255] |
36200
deb851914fd7
dirstate: drop explicit files that shouldn't match (BC) (issue4679)
Yuya Nishihara <yuya@tcha.org>
parents:
36084
diff
changeset
|
64 |
deb851914fd7
dirstate: drop explicit files that shouldn't match (BC) (issue4679)
Yuya Nishihara <yuya@tcha.org>
parents:
36084
diff
changeset
|
65 But adding a truly excluded file shouldn't count |
deb851914fd7
dirstate: drop explicit files that shouldn't match (BC) (issue4679)
Yuya Nishihara <yuya@tcha.org>
parents:
36084
diff
changeset
|
66 |
deb851914fd7
dirstate: drop explicit files that shouldn't match (BC) (issue4679)
Yuya Nishihara <yuya@tcha.org>
parents:
36084
diff
changeset
|
67 $ hg add outside/f3 -X outside/f3 |
deb851914fd7
dirstate: drop explicit files that shouldn't match (BC) (issue4679)
Yuya Nishihara <yuya@tcha.org>
parents:
36084
diff
changeset
|
68 |
36079
a2a6e724d61a
narrow: import experimental extension from narrowhg revision cb51d673e9c5
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
69 $ rm -r outside |
a2a6e724d61a
narrow: import experimental extension from narrowhg revision cb51d673e9c5
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
70 |
a2a6e724d61a
narrow: import experimental extension from narrowhg revision cb51d673e9c5
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
71 Can modify dirstate inside |
a2a6e724d61a
narrow: import experimental extension from narrowhg revision cb51d673e9c5
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
72 |
a2a6e724d61a
narrow: import experimental extension from narrowhg revision cb51d673e9c5
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
73 $ echo modified > inside/f1 |
a2a6e724d61a
narrow: import experimental extension from narrowhg revision cb51d673e9c5
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
74 $ touch inside/f3 |
a2a6e724d61a
narrow: import experimental extension from narrowhg revision cb51d673e9c5
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
75 $ hg add inside/f3 |
a2a6e724d61a
narrow: import experimental extension from narrowhg revision cb51d673e9c5
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
76 $ hg status |
a2a6e724d61a
narrow: import experimental extension from narrowhg revision cb51d673e9c5
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
77 M inside/f1 |
a2a6e724d61a
narrow: import experimental extension from narrowhg revision cb51d673e9c5
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
78 A inside/f3 |
a2a6e724d61a
narrow: import experimental extension from narrowhg revision cb51d673e9c5
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
79 $ hg revert -qC . |
a2a6e724d61a
narrow: import experimental extension from narrowhg revision cb51d673e9c5
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
80 $ rm inside/f3 |
a2a6e724d61a
narrow: import experimental extension from narrowhg revision cb51d673e9c5
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
81 |
a2a6e724d61a
narrow: import experimental extension from narrowhg revision cb51d673e9c5
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
82 Can commit changes inside. Leaves outside unchanged. |
a2a6e724d61a
narrow: import experimental extension from narrowhg revision cb51d673e9c5
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
83 |
a2a6e724d61a
narrow: import experimental extension from narrowhg revision cb51d673e9c5
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
84 $ hg update -q 'desc("initial")' |
a2a6e724d61a
narrow: import experimental extension from narrowhg revision cb51d673e9c5
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
85 $ echo modified2 > inside/f1 |
36210
5c9bdfb32eac
manifest: add support for including directories outside narrowspec
Martin von Zweigbergk <martinvonz@google.com>
parents:
36200
diff
changeset
|
86 $ hg manifest --debug |
5c9bdfb32eac
manifest: add support for including directories outside narrowspec
Martin von Zweigbergk <martinvonz@google.com>
parents:
36200
diff
changeset
|
87 4d6a634d5ba06331a60c29ee0db8412490a54fcd 644 inside/f1 |
5c9bdfb32eac
manifest: add support for including directories outside narrowspec
Martin von Zweigbergk <martinvonz@google.com>
parents:
36200
diff
changeset
|
88 7fb3bb6356d28d4dc352c5ba52d7350a81b6bd46 644 outside/f1 (flat !) |
5c9bdfb32eac
manifest: add support for including directories outside narrowspec
Martin von Zweigbergk <martinvonz@google.com>
parents:
36200
diff
changeset
|
89 d0f2f706468ab0e8bec7af87446835fb1b13511b 755 d outside/ (tree !) |
36079
a2a6e724d61a
narrow: import experimental extension from narrowhg revision cb51d673e9c5
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
90 $ hg commit -m 'modify inside/f1' |
a2a6e724d61a
narrow: import experimental extension from narrowhg revision cb51d673e9c5
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
91 created new head |
a2a6e724d61a
narrow: import experimental extension from narrowhg revision cb51d673e9c5
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
92 $ hg files -r . |
a2a6e724d61a
narrow: import experimental extension from narrowhg revision cb51d673e9c5
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
93 inside/f1 |
36210
5c9bdfb32eac
manifest: add support for including directories outside narrowspec
Martin von Zweigbergk <martinvonz@google.com>
parents:
36200
diff
changeset
|
94 $ hg manifest --debug |
5c9bdfb32eac
manifest: add support for including directories outside narrowspec
Martin von Zweigbergk <martinvonz@google.com>
parents:
36200
diff
changeset
|
95 3f4197b4a11b9016e77ebc47fe566944885fd11b 644 inside/f1 |
5c9bdfb32eac
manifest: add support for including directories outside narrowspec
Martin von Zweigbergk <martinvonz@google.com>
parents:
36200
diff
changeset
|
96 7fb3bb6356d28d4dc352c5ba52d7350a81b6bd46 644 outside/f1 (flat !) |
5c9bdfb32eac
manifest: add support for including directories outside narrowspec
Martin von Zweigbergk <martinvonz@google.com>
parents:
36200
diff
changeset
|
97 d0f2f706468ab0e8bec7af87446835fb1b13511b 755 d outside/ (tree !) |
36079
a2a6e724d61a
narrow: import experimental extension from narrowhg revision cb51d673e9c5
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
98 Some filesystems (notably FAT/exFAT only store timestamps with 2 |
a2a6e724d61a
narrow: import experimental extension from narrowhg revision cb51d673e9c5
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
99 seconds of precision, so by sleeping for 3 seconds, we can ensure that |
a2a6e724d61a
narrow: import experimental extension from narrowhg revision cb51d673e9c5
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
100 the timestamps of files stored by dirstate will appear older than the |
a2a6e724d61a
narrow: import experimental extension from narrowhg revision cb51d673e9c5
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
101 dirstate file, and therefore we'll be able to get stable output from |
a2a6e724d61a
narrow: import experimental extension from narrowhg revision cb51d673e9c5
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
102 debugdirstate. If we don't do this, the test can be slightly flaky. |
a2a6e724d61a
narrow: import experimental extension from narrowhg revision cb51d673e9c5
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
103 $ sleep 3 |
a2a6e724d61a
narrow: import experimental extension from narrowhg revision cb51d673e9c5
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
104 $ hg status |
39760
7e99b02768ef
debugdirstate: deprecate --nodates in favor of --no-dates
Martin von Zweigbergk <martinvonz@google.com>
parents:
38263
diff
changeset
|
105 $ hg debugdirstate --no-dates |
36079
a2a6e724d61a
narrow: import experimental extension from narrowhg revision cb51d673e9c5
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
106 n 644 10 set inside/f1 |