Mercurial > hg
annotate tests/test-casecollision.t @ 51758:421c9b3f2f4e
commit: set whole manifest entries at once (node with its associated flags)
Add a new function manifest.set that sets whole manifest entries at once,
so the caller doesn't have to do two separate operations:
m[p] = n
m.set_flags(f)
becomes:
m.set(p, n, f)
This obviously saves an extra lookup by path, and it also lets the
underlying manifest implementation to be more efficient as
it doesn't have to deal with partially-specified entries.
It makes the interaction conceptually simpler, as well, since we don't
have to go through an intermediate state of incorrect
partially-written entry.
(the real motivation for this change is an alternative manifest
implementation where we batch pending writes, and dealing with
fully defined entries makes the batching logic muchsimpler while
avoiding slowdown due to alternating writes and reads)
author | Arseniy Alekseyev <aalekseyev@janestreet.com> |
---|---|
date | Thu, 01 Aug 2024 13:38:31 +0100 |
parents | 0b8e076e878c |
children |
rev | line source |
---|---|
22046
7a9cbb315d84
tests: replace exit 80 with #require
Matt Mackall <mpm@selenic.com>
parents:
17096
diff
changeset
|
1 #require no-icasefs |
14068
04ce8fa1015d
add: notify when adding a file that would cause a case-folding collision
Kevin Gessner <kevin@kevingessner.com>
parents:
diff
changeset
|
2 |
04ce8fa1015d
add: notify when adding a file that would cause a case-folding collision
Kevin Gessner <kevin@kevingessner.com>
parents:
diff
changeset
|
3 test file addition with colliding case |
04ce8fa1015d
add: notify when adding a file that would cause a case-folding collision
Kevin Gessner <kevin@kevingessner.com>
parents:
diff
changeset
|
4 |
04ce8fa1015d
add: notify when adding a file that would cause a case-folding collision
Kevin Gessner <kevin@kevingessner.com>
parents:
diff
changeset
|
5 $ hg init repo1 |
04ce8fa1015d
add: notify when adding a file that would cause a case-folding collision
Kevin Gessner <kevin@kevingessner.com>
parents:
diff
changeset
|
6 $ cd repo1 |
04ce8fa1015d
add: notify when adding a file that would cause a case-folding collision
Kevin Gessner <kevin@kevingessner.com>
parents:
diff
changeset
|
7 $ echo a > a |
04ce8fa1015d
add: notify when adding a file that would cause a case-folding collision
Kevin Gessner <kevin@kevingessner.com>
parents:
diff
changeset
|
8 $ echo A > A |
04ce8fa1015d
add: notify when adding a file that would cause a case-folding collision
Kevin Gessner <kevin@kevingessner.com>
parents:
diff
changeset
|
9 $ hg add a |
04ce8fa1015d
add: notify when adding a file that would cause a case-folding collision
Kevin Gessner <kevin@kevingessner.com>
parents:
diff
changeset
|
10 $ hg st |
04ce8fa1015d
add: notify when adding a file that would cause a case-folding collision
Kevin Gessner <kevin@kevingessner.com>
parents:
diff
changeset
|
11 A a |
04ce8fa1015d
add: notify when adding a file that would cause a case-folding collision
Kevin Gessner <kevin@kevingessner.com>
parents:
diff
changeset
|
12 ? A |
04ce8fa1015d
add: notify when adding a file that would cause a case-folding collision
Kevin Gessner <kevin@kevingessner.com>
parents:
diff
changeset
|
13 $ hg add --config ui.portablefilenames=abort A |
04ce8fa1015d
add: notify when adding a file that would cause a case-folding collision
Kevin Gessner <kevin@kevingessner.com>
parents:
diff
changeset
|
14 abort: possible case-folding collision for A |
48367
0b8e076e878c
errors: use detailed exit code for detected case-collision
Martin von Zweigbergk <martinvonz@google.com>
parents:
22046
diff
changeset
|
15 [20] |
14068
04ce8fa1015d
add: notify when adding a file that would cause a case-folding collision
Kevin Gessner <kevin@kevingessner.com>
parents:
diff
changeset
|
16 $ hg st |
04ce8fa1015d
add: notify when adding a file that would cause a case-folding collision
Kevin Gessner <kevin@kevingessner.com>
parents:
diff
changeset
|
17 A a |
04ce8fa1015d
add: notify when adding a file that would cause a case-folding collision
Kevin Gessner <kevin@kevingessner.com>
parents:
diff
changeset
|
18 ? A |
04ce8fa1015d
add: notify when adding a file that would cause a case-folding collision
Kevin Gessner <kevin@kevingessner.com>
parents:
diff
changeset
|
19 $ hg add A |
04ce8fa1015d
add: notify when adding a file that would cause a case-folding collision
Kevin Gessner <kevin@kevingessner.com>
parents:
diff
changeset
|
20 warning: possible case-folding collision for A |
04ce8fa1015d
add: notify when adding a file that would cause a case-folding collision
Kevin Gessner <kevin@kevingessner.com>
parents:
diff
changeset
|
21 $ hg st |
04ce8fa1015d
add: notify when adding a file that would cause a case-folding collision
Kevin Gessner <kevin@kevingessner.com>
parents:
diff
changeset
|
22 A A |
04ce8fa1015d
add: notify when adding a file that would cause a case-folding collision
Kevin Gessner <kevin@kevingessner.com>
parents:
diff
changeset
|
23 A a |
04ce8fa1015d
add: notify when adding a file that would cause a case-folding collision
Kevin Gessner <kevin@kevingessner.com>
parents:
diff
changeset
|
24 $ hg forget A |
04ce8fa1015d
add: notify when adding a file that would cause a case-folding collision
Kevin Gessner <kevin@kevingessner.com>
parents:
diff
changeset
|
25 $ hg st |
04ce8fa1015d
add: notify when adding a file that would cause a case-folding collision
Kevin Gessner <kevin@kevingessner.com>
parents:
diff
changeset
|
26 A a |
04ce8fa1015d
add: notify when adding a file that would cause a case-folding collision
Kevin Gessner <kevin@kevingessner.com>
parents:
diff
changeset
|
27 ? A |
04ce8fa1015d
add: notify when adding a file that would cause a case-folding collision
Kevin Gessner <kevin@kevingessner.com>
parents:
diff
changeset
|
28 $ hg add --config ui.portablefilenames=no A |
04ce8fa1015d
add: notify when adding a file that would cause a case-folding collision
Kevin Gessner <kevin@kevingessner.com>
parents:
diff
changeset
|
29 $ hg st |
04ce8fa1015d
add: notify when adding a file that would cause a case-folding collision
Kevin Gessner <kevin@kevingessner.com>
parents:
diff
changeset
|
30 A A |
04ce8fa1015d
add: notify when adding a file that would cause a case-folding collision
Kevin Gessner <kevin@kevingessner.com>
parents:
diff
changeset
|
31 A a |
17096
14e44933d175
casecollision: add tests
Joshua Redstone <joshua.redstone@fb.com>
parents:
14178
diff
changeset
|
32 $ mkdir b |
14e44933d175
casecollision: add tests
Joshua Redstone <joshua.redstone@fb.com>
parents:
14178
diff
changeset
|
33 $ touch b/c b/D |
14e44933d175
casecollision: add tests
Joshua Redstone <joshua.redstone@fb.com>
parents:
14178
diff
changeset
|
34 $ hg add b |
14e44933d175
casecollision: add tests
Joshua Redstone <joshua.redstone@fb.com>
parents:
14178
diff
changeset
|
35 adding b/D |
14e44933d175
casecollision: add tests
Joshua Redstone <joshua.redstone@fb.com>
parents:
14178
diff
changeset
|
36 adding b/c |
14e44933d175
casecollision: add tests
Joshua Redstone <joshua.redstone@fb.com>
parents:
14178
diff
changeset
|
37 $ touch b/d b/C |
14e44933d175
casecollision: add tests
Joshua Redstone <joshua.redstone@fb.com>
parents:
14178
diff
changeset
|
38 $ hg add b/C |
14e44933d175
casecollision: add tests
Joshua Redstone <joshua.redstone@fb.com>
parents:
14178
diff
changeset
|
39 warning: possible case-folding collision for b/C |
14e44933d175
casecollision: add tests
Joshua Redstone <joshua.redstone@fb.com>
parents:
14178
diff
changeset
|
40 $ hg add b/d |
14e44933d175
casecollision: add tests
Joshua Redstone <joshua.redstone@fb.com>
parents:
14178
diff
changeset
|
41 warning: possible case-folding collision for b/d |
14e44933d175
casecollision: add tests
Joshua Redstone <joshua.redstone@fb.com>
parents:
14178
diff
changeset
|
42 $ touch b/a1 b/a2 |
14e44933d175
casecollision: add tests
Joshua Redstone <joshua.redstone@fb.com>
parents:
14178
diff
changeset
|
43 $ hg add b |
14e44933d175
casecollision: add tests
Joshua Redstone <joshua.redstone@fb.com>
parents:
14178
diff
changeset
|
44 adding b/a1 |
14e44933d175
casecollision: add tests
Joshua Redstone <joshua.redstone@fb.com>
parents:
14178
diff
changeset
|
45 adding b/a2 |
14e44933d175
casecollision: add tests
Joshua Redstone <joshua.redstone@fb.com>
parents:
14178
diff
changeset
|
46 $ touch b/A2 b/a1.1 |
14e44933d175
casecollision: add tests
Joshua Redstone <joshua.redstone@fb.com>
parents:
14178
diff
changeset
|
47 $ hg add b/a1.1 b/A2 |
14e44933d175
casecollision: add tests
Joshua Redstone <joshua.redstone@fb.com>
parents:
14178
diff
changeset
|
48 warning: possible case-folding collision for b/A2 |
14e44933d175
casecollision: add tests
Joshua Redstone <joshua.redstone@fb.com>
parents:
14178
diff
changeset
|
49 $ touch b/f b/F |
14e44933d175
casecollision: add tests
Joshua Redstone <joshua.redstone@fb.com>
parents:
14178
diff
changeset
|
50 $ hg add b/f b/F |
14e44933d175
casecollision: add tests
Joshua Redstone <joshua.redstone@fb.com>
parents:
14178
diff
changeset
|
51 warning: possible case-folding collision for b/f |
14e44933d175
casecollision: add tests
Joshua Redstone <joshua.redstone@fb.com>
parents:
14178
diff
changeset
|
52 $ touch g G |
14e44933d175
casecollision: add tests
Joshua Redstone <joshua.redstone@fb.com>
parents:
14178
diff
changeset
|
53 $ hg add g G |
14e44933d175
casecollision: add tests
Joshua Redstone <joshua.redstone@fb.com>
parents:
14178
diff
changeset
|
54 warning: possible case-folding collision for g |
14e44933d175
casecollision: add tests
Joshua Redstone <joshua.redstone@fb.com>
parents:
14178
diff
changeset
|
55 $ mkdir h H |
14e44933d175
casecollision: add tests
Joshua Redstone <joshua.redstone@fb.com>
parents:
14178
diff
changeset
|
56 $ touch h/x H/x |
14e44933d175
casecollision: add tests
Joshua Redstone <joshua.redstone@fb.com>
parents:
14178
diff
changeset
|
57 $ hg add h/x H/x |
14e44933d175
casecollision: add tests
Joshua Redstone <joshua.redstone@fb.com>
parents:
14178
diff
changeset
|
58 warning: possible case-folding collision for h/x |
14e44933d175
casecollision: add tests
Joshua Redstone <joshua.redstone@fb.com>
parents:
14178
diff
changeset
|
59 $ touch h/s H/s |
14e44933d175
casecollision: add tests
Joshua Redstone <joshua.redstone@fb.com>
parents:
14178
diff
changeset
|
60 $ hg add h/s |
14e44933d175
casecollision: add tests
Joshua Redstone <joshua.redstone@fb.com>
parents:
14178
diff
changeset
|
61 $ hg add H/s |
14e44933d175
casecollision: add tests
Joshua Redstone <joshua.redstone@fb.com>
parents:
14178
diff
changeset
|
62 warning: possible case-folding collision for H/s |
14178
524c560e2d32
test-casecollision.t: add test for case changing rename
Adrian Buehlmann <adrian@cadifra.com>
parents:
14068
diff
changeset
|
63 |
524c560e2d32
test-casecollision.t: add test for case changing rename
Adrian Buehlmann <adrian@cadifra.com>
parents:
14068
diff
changeset
|
64 case changing rename must not warn or abort |
524c560e2d32
test-casecollision.t: add test for case changing rename
Adrian Buehlmann <adrian@cadifra.com>
parents:
14068
diff
changeset
|
65 |
524c560e2d32
test-casecollision.t: add test for case changing rename
Adrian Buehlmann <adrian@cadifra.com>
parents:
14068
diff
changeset
|
66 $ echo c > c |
524c560e2d32
test-casecollision.t: add test for case changing rename
Adrian Buehlmann <adrian@cadifra.com>
parents:
14068
diff
changeset
|
67 $ hg ci -qAmx |
524c560e2d32
test-casecollision.t: add test for case changing rename
Adrian Buehlmann <adrian@cadifra.com>
parents:
14068
diff
changeset
|
68 $ hg mv c C |
14068
04ce8fa1015d
add: notify when adding a file that would cause a case-folding collision
Kevin Gessner <kevin@kevingessner.com>
parents:
diff
changeset
|
69 $ cd .. |