Mercurial > hg
annotate tests/test-bookmarks-strip.t @ 24790:baa11dde8c0e
match: add a subclass for dirstate normalizing of the matched patterns
This class is only needed on case insensitive filesystems, and only
for wdir context matches. It allows the user to not match the case of
the items in the filesystem- especially for naming directories, which
dirstate doesn't handle[1]. Making dirstate handle mismatched
directory cases is too expensive[2].
Since dirstate doesn't apply to committed csets, this is only created by
overriding basectx.match() in workingctx, and only on icasefs. The default
arguments have been dropped, because the ctx must be passed to the matcher in
order to function.
For operations that can apply to both wdir and some other context, this ends up
normalizing the filename to the case as it exists in the filesystem, and using
that case for the lookup in the other context. See the diff example in the
test.
Previously, given a directory with an inexact case:
- add worked as expected
- diff, forget and status would silently ignore the request
- files would exit with 1
- commit, revert and remove would fail (even when the commands leading up to
them worked):
$ hg ci -m "AbCDef" capsdir1/capsdir
abort: CapsDir1/CapsDir: no match under directory!
$ hg revert -r '.^' capsdir1/capsdir
capsdir1\capsdir: no such file in rev 64dae27060b7
$ hg remove capsdir1/capsdir
not removing capsdir1\capsdir: no tracked files
[1]
Globs are normalized, so that the -I and -X don't need to be specified with a
case match. Without that, the second last remove (with -X) removes the files,
leaving nothing for the last remove. However, specifying the files as
'glob:**.Txt' does not work. Perhaps this requires 're.IGNORECASE'?
There are only a handful of places that create matchers directly, instead of
being routed through the context.match() method. Some may benefit from changing
over to using ctx.match() as a factory function:
revset.checkstatus()
revset.contains()
revset.filelog()
revset._matchfiles()
localrepository._loadfilter()
ignore.ignore()
fileset.subrepo()
filemerge._picktool()
overrides.addlargefiles()
lfcommands.lfconvert()
kwtemplate.__init__()
eolfile.__init__()
eolfile.checkrev()
acl.buildmatch()
Currently, a toplevel subrepo can be named with an inexact case. However, the
path auditor gets in the way of naming _anything_ in the subrepo if the top
level case doesn't match. That is trickier to handle, because there's the user
provided case, the case in the filesystem, and the case stored in .hgsub. This
can be fixed next cycle.
--- a/tests/test-subrepo-deep-nested-change.t
+++ b/tests/test-subrepo-deep-nested-change.t
@@ -170,8 +170,15 @@
R sub1/sub2/test.txt
$ hg update -Cq
$ touch sub1/sub2/folder/bar
+#if icasefs
+ $ hg addremove Sub1/sub2
+ abort: path 'Sub1\sub2' is inside nested repo 'Sub1'
+ [255]
+ $ hg -q addremove sub1/sub2
+#else
$ hg addremove sub1/sub2
adding sub1/sub2/folder/bar (glob)
+#endif
$ hg status -S
A sub1/sub2/folder/bar
? foo/bar/abc
The narrowmatcher class may need to be tweaked when that is fixed.
[1] http://www.selenic.com/pipermail/mercurial-devel/2015-April/068183.html
[2] http://www.selenic.com/pipermail/mercurial-devel/2015-April/068191.html
author | Matt Harbison <matt_harbison@yahoo.com> |
---|---|
date | Sun, 12 Apr 2015 01:39:21 -0400 |
parents | ca275f7ec576 |
children | e78a80f8f51e |
rev | line source |
---|---|
11864
b2a06ef53b7b
tests: unify test-bookmarks-strip
Martin Geisler <mg@lazybytes.net>
parents:
11208
diff
changeset
|
1 $ echo "[extensions]" >> $HGRCPATH |
b2a06ef53b7b
tests: unify test-bookmarks-strip
Martin Geisler <mg@lazybytes.net>
parents:
11208
diff
changeset
|
2 $ echo "mq=" >> $HGRCPATH |
b2a06ef53b7b
tests: unify test-bookmarks-strip
Martin Geisler <mg@lazybytes.net>
parents:
11208
diff
changeset
|
3 |
b2a06ef53b7b
tests: unify test-bookmarks-strip
Martin Geisler <mg@lazybytes.net>
parents:
11208
diff
changeset
|
4 $ hg init |
7316
9737041646bc
bookmarks: Use dirstate to determine the current node in addchangegroup
David Soria Parra <dsp@php.net>
parents:
diff
changeset
|
5 |
11864
b2a06ef53b7b
tests: unify test-bookmarks-strip
Martin Geisler <mg@lazybytes.net>
parents:
11208
diff
changeset
|
6 $ echo qqq>qqq.txt |
7316
9737041646bc
bookmarks: Use dirstate to determine the current node in addchangegroup
David Soria Parra <dsp@php.net>
parents:
diff
changeset
|
7 |
13307
7f2b8aac7bdc
bookmarks: respect rollbacks dryrun parameter
David Soria Parra <dsp@php.net>
parents:
12640
diff
changeset
|
8 rollback dry run without rollback information |
7f2b8aac7bdc
bookmarks: respect rollbacks dryrun parameter
David Soria Parra <dsp@php.net>
parents:
12640
diff
changeset
|
9 |
7f2b8aac7bdc
bookmarks: respect rollbacks dryrun parameter
David Soria Parra <dsp@php.net>
parents:
12640
diff
changeset
|
10 $ hg rollback |
7f2b8aac7bdc
bookmarks: respect rollbacks dryrun parameter
David Soria Parra <dsp@php.net>
parents:
12640
diff
changeset
|
11 no rollback information available |
7f2b8aac7bdc
bookmarks: respect rollbacks dryrun parameter
David Soria Parra <dsp@php.net>
parents:
12640
diff
changeset
|
12 [1] |
7f2b8aac7bdc
bookmarks: respect rollbacks dryrun parameter
David Soria Parra <dsp@php.net>
parents:
12640
diff
changeset
|
13 |
11864
b2a06ef53b7b
tests: unify test-bookmarks-strip
Martin Geisler <mg@lazybytes.net>
parents:
11208
diff
changeset
|
14 add file |
7316
9737041646bc
bookmarks: Use dirstate to determine the current node in addchangegroup
David Soria Parra <dsp@php.net>
parents:
diff
changeset
|
15 |
11864
b2a06ef53b7b
tests: unify test-bookmarks-strip
Martin Geisler <mg@lazybytes.net>
parents:
11208
diff
changeset
|
16 $ hg add |
b2a06ef53b7b
tests: unify test-bookmarks-strip
Martin Geisler <mg@lazybytes.net>
parents:
11208
diff
changeset
|
17 adding qqq.txt |
7316
9737041646bc
bookmarks: Use dirstate to determine the current node in addchangegroup
David Soria Parra <dsp@php.net>
parents:
diff
changeset
|
18 |
11864
b2a06ef53b7b
tests: unify test-bookmarks-strip
Martin Geisler <mg@lazybytes.net>
parents:
11208
diff
changeset
|
19 commit first revision |
b2a06ef53b7b
tests: unify test-bookmarks-strip
Martin Geisler <mg@lazybytes.net>
parents:
11208
diff
changeset
|
20 |
12156
4c94b6d0fb1c
tests: remove unneeded -d flags
Martin Geisler <mg@lazybytes.net>
parents:
11907
diff
changeset
|
21 $ hg ci -m 1 |
11864
b2a06ef53b7b
tests: unify test-bookmarks-strip
Martin Geisler <mg@lazybytes.net>
parents:
11208
diff
changeset
|
22 |
b2a06ef53b7b
tests: unify test-bookmarks-strip
Martin Geisler <mg@lazybytes.net>
parents:
11208
diff
changeset
|
23 set bookmark |
b2a06ef53b7b
tests: unify test-bookmarks-strip
Martin Geisler <mg@lazybytes.net>
parents:
11208
diff
changeset
|
24 |
b2a06ef53b7b
tests: unify test-bookmarks-strip
Martin Geisler <mg@lazybytes.net>
parents:
11208
diff
changeset
|
25 $ hg book test |
7316
9737041646bc
bookmarks: Use dirstate to determine the current node in addchangegroup
David Soria Parra <dsp@php.net>
parents:
diff
changeset
|
26 |
11864
b2a06ef53b7b
tests: unify test-bookmarks-strip
Martin Geisler <mg@lazybytes.net>
parents:
11208
diff
changeset
|
27 $ echo www>>qqq.txt |
b2a06ef53b7b
tests: unify test-bookmarks-strip
Martin Geisler <mg@lazybytes.net>
parents:
11208
diff
changeset
|
28 |
b2a06ef53b7b
tests: unify test-bookmarks-strip
Martin Geisler <mg@lazybytes.net>
parents:
11208
diff
changeset
|
29 commit second revision |
7316
9737041646bc
bookmarks: Use dirstate to determine the current node in addchangegroup
David Soria Parra <dsp@php.net>
parents:
diff
changeset
|
30 |
12156
4c94b6d0fb1c
tests: remove unneeded -d flags
Martin Geisler <mg@lazybytes.net>
parents:
11907
diff
changeset
|
31 $ hg ci -m 2 |
7316
9737041646bc
bookmarks: Use dirstate to determine the current node in addchangegroup
David Soria Parra <dsp@php.net>
parents:
diff
changeset
|
32 |
11864
b2a06ef53b7b
tests: unify test-bookmarks-strip
Martin Geisler <mg@lazybytes.net>
parents:
11208
diff
changeset
|
33 set bookmark |
7316
9737041646bc
bookmarks: Use dirstate to determine the current node in addchangegroup
David Soria Parra <dsp@php.net>
parents:
diff
changeset
|
34 |
11864
b2a06ef53b7b
tests: unify test-bookmarks-strip
Martin Geisler <mg@lazybytes.net>
parents:
11208
diff
changeset
|
35 $ hg book test2 |
b2a06ef53b7b
tests: unify test-bookmarks-strip
Martin Geisler <mg@lazybytes.net>
parents:
11208
diff
changeset
|
36 |
17497 | 37 update to -2 (deactivates the active bookmark) |
11864
b2a06ef53b7b
tests: unify test-bookmarks-strip
Martin Geisler <mg@lazybytes.net>
parents:
11208
diff
changeset
|
38 |
b2a06ef53b7b
tests: unify test-bookmarks-strip
Martin Geisler <mg@lazybytes.net>
parents:
11208
diff
changeset
|
39 $ hg update -r -2 |
b2a06ef53b7b
tests: unify test-bookmarks-strip
Martin Geisler <mg@lazybytes.net>
parents:
11208
diff
changeset
|
40 1 files updated, 0 files merged, 0 files removed, 0 files unresolved |
21404
ca275f7ec576
update: when deactivating a bookmark, print a message
Siddharth Agarwal <sid0@fb.com>
parents:
17497
diff
changeset
|
41 (leaving bookmark test2) |
7316
9737041646bc
bookmarks: Use dirstate to determine the current node in addchangegroup
David Soria Parra <dsp@php.net>
parents:
diff
changeset
|
42 |
11864
b2a06ef53b7b
tests: unify test-bookmarks-strip
Martin Geisler <mg@lazybytes.net>
parents:
11208
diff
changeset
|
43 $ echo eee>>qqq.txt |
b2a06ef53b7b
tests: unify test-bookmarks-strip
Martin Geisler <mg@lazybytes.net>
parents:
11208
diff
changeset
|
44 |
b2a06ef53b7b
tests: unify test-bookmarks-strip
Martin Geisler <mg@lazybytes.net>
parents:
11208
diff
changeset
|
45 commit new head |
7316
9737041646bc
bookmarks: Use dirstate to determine the current node in addchangegroup
David Soria Parra <dsp@php.net>
parents:
diff
changeset
|
46 |
12156
4c94b6d0fb1c
tests: remove unneeded -d flags
Martin Geisler <mg@lazybytes.net>
parents:
11907
diff
changeset
|
47 $ hg ci -m 3 |
11864
b2a06ef53b7b
tests: unify test-bookmarks-strip
Martin Geisler <mg@lazybytes.net>
parents:
11208
diff
changeset
|
48 created new head |
7316
9737041646bc
bookmarks: Use dirstate to determine the current node in addchangegroup
David Soria Parra <dsp@php.net>
parents:
diff
changeset
|
49 |
11864
b2a06ef53b7b
tests: unify test-bookmarks-strip
Martin Geisler <mg@lazybytes.net>
parents:
11208
diff
changeset
|
50 bookmarks updated? |
7316
9737041646bc
bookmarks: Use dirstate to determine the current node in addchangegroup
David Soria Parra <dsp@php.net>
parents:
diff
changeset
|
51 |
11864
b2a06ef53b7b
tests: unify test-bookmarks-strip
Martin Geisler <mg@lazybytes.net>
parents:
11208
diff
changeset
|
52 $ hg book |
12156
4c94b6d0fb1c
tests: remove unneeded -d flags
Martin Geisler <mg@lazybytes.net>
parents:
11907
diff
changeset
|
53 test 1:25e1ee7a0081 |
4c94b6d0fb1c
tests: remove unneeded -d flags
Martin Geisler <mg@lazybytes.net>
parents:
11907
diff
changeset
|
54 test2 1:25e1ee7a0081 |
7316
9737041646bc
bookmarks: Use dirstate to determine the current node in addchangegroup
David Soria Parra <dsp@php.net>
parents:
diff
changeset
|
55 |
11864
b2a06ef53b7b
tests: unify test-bookmarks-strip
Martin Geisler <mg@lazybytes.net>
parents:
11208
diff
changeset
|
56 strip to revision 1 |
7316
9737041646bc
bookmarks: Use dirstate to determine the current node in addchangegroup
David Soria Parra <dsp@php.net>
parents:
diff
changeset
|
57 |
11907
863567a1364f
tests: use regular expressions instead of helpers
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
11864
diff
changeset
|
58 $ hg strip 1 |
12640
6cc4b14fb76b
tests: remove redundant globs
Mads Kiilerich <mads@kiilerich.com>
parents:
12394
diff
changeset
|
59 saved backup bundle to $TESTTMP/.hg/strip-backup/*-backup.hg (glob) |
11864
b2a06ef53b7b
tests: unify test-bookmarks-strip
Martin Geisler <mg@lazybytes.net>
parents:
11208
diff
changeset
|
60 |
b2a06ef53b7b
tests: unify test-bookmarks-strip
Martin Geisler <mg@lazybytes.net>
parents:
11208
diff
changeset
|
61 list bookmarks |
7316
9737041646bc
bookmarks: Use dirstate to determine the current node in addchangegroup
David Soria Parra <dsp@php.net>
parents:
diff
changeset
|
62 |
11864
b2a06ef53b7b
tests: unify test-bookmarks-strip
Martin Geisler <mg@lazybytes.net>
parents:
11208
diff
changeset
|
63 $ hg book |
17264
ec7b9bec19c9
strip: move bookmarks to nearest ancestor rather than '.'
Augie Fackler <raf@durin42.com>
parents:
16191
diff
changeset
|
64 test 0:5c9ad3787638 |
ec7b9bec19c9
strip: move bookmarks to nearest ancestor rather than '.'
Augie Fackler <raf@durin42.com>
parents:
16191
diff
changeset
|
65 test2 0:5c9ad3787638 |
7316
9737041646bc
bookmarks: Use dirstate to determine the current node in addchangegroup
David Soria Parra <dsp@php.net>
parents:
diff
changeset
|
66 |
12394 | 67 immediate rollback and reentrancy issue |
7316
9737041646bc
bookmarks: Use dirstate to determine the current node in addchangegroup
David Soria Parra <dsp@php.net>
parents:
diff
changeset
|
68 |
12394 | 69 $ echo "mq=!" >> $HGRCPATH |
70 $ hg init repo | |
71 $ cd repo | |
72 $ echo a > a | |
73 $ hg ci -Am adda | |
74 adding a | |
75 $ echo b > b | |
76 $ hg ci -Am addb | |
77 adding b | |
78 $ hg bookmarks markb | |
79 $ hg rollback | |
13446
1e497df514e2
rollback: clarifies the message about the reverted state (issue2628)
Gilles Moris <gilles.moris@free.fr>
parents:
13416
diff
changeset
|
80 repository tip rolled back to revision 0 (undo commit) |
1e497df514e2
rollback: clarifies the message about the reverted state (issue2628)
Gilles Moris <gilles.moris@free.fr>
parents:
13416
diff
changeset
|
81 working directory now based on revision 0 |
7316
9737041646bc
bookmarks: Use dirstate to determine the current node in addchangegroup
David Soria Parra <dsp@php.net>
parents:
diff
changeset
|
82 |
12394 | 83 are you there? |
84 | |
85 $ hg bookmarks | |
86 no bookmarks set | |
12392
741290486877
bookmarks: fix _bookmarks/lookup() reentrancy issue (issue2016)
Patrick Mezard <pmezard@gmail.com>
parents:
11208
diff
changeset
|
87 |
13627
71a96f6c205d
bookmarks: discard current bookmark if absent from the bookmarks (issue2692)
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
13469
diff
changeset
|
88 can we commit? (issue2692) |
71a96f6c205d
bookmarks: discard current bookmark if absent from the bookmarks (issue2692)
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
13469
diff
changeset
|
89 |
71a96f6c205d
bookmarks: discard current bookmark if absent from the bookmarks (issue2692)
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
13469
diff
changeset
|
90 $ echo c > c |
71a96f6c205d
bookmarks: discard current bookmark if absent from the bookmarks (issue2692)
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
13469
diff
changeset
|
91 $ hg ci -Am rockon |
71a96f6c205d
bookmarks: discard current bookmark if absent from the bookmarks (issue2692)
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
13469
diff
changeset
|
92 adding c |
71a96f6c205d
bookmarks: discard current bookmark if absent from the bookmarks (issue2692)
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
13469
diff
changeset
|
93 |
12394 | 94 can you be added again? |
95 | |
96 $ hg bookmarks markb | |
97 $ hg bookmarks | |
13627
71a96f6c205d
bookmarks: discard current bookmark if absent from the bookmarks (issue2692)
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
13469
diff
changeset
|
98 * markb 1:fdb34407462c |
13307
7f2b8aac7bdc
bookmarks: respect rollbacks dryrun parameter
David Soria Parra <dsp@php.net>
parents:
12640
diff
changeset
|
99 |
7f2b8aac7bdc
bookmarks: respect rollbacks dryrun parameter
David Soria Parra <dsp@php.net>
parents:
12640
diff
changeset
|
100 rollback dry run with rollback information |
7f2b8aac7bdc
bookmarks: respect rollbacks dryrun parameter
David Soria Parra <dsp@php.net>
parents:
12640
diff
changeset
|
101 |
7f2b8aac7bdc
bookmarks: respect rollbacks dryrun parameter
David Soria Parra <dsp@php.net>
parents:
12640
diff
changeset
|
102 $ hg rollback -n |
13627
71a96f6c205d
bookmarks: discard current bookmark if absent from the bookmarks (issue2692)
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
13469
diff
changeset
|
103 repository tip rolled back to revision 0 (undo commit) |
71a96f6c205d
bookmarks: discard current bookmark if absent from the bookmarks (issue2692)
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
13469
diff
changeset
|
104 $ hg bookmarks |
71a96f6c205d
bookmarks: discard current bookmark if absent from the bookmarks (issue2692)
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
13469
diff
changeset
|
105 * markb 1:fdb34407462c |
71a96f6c205d
bookmarks: discard current bookmark if absent from the bookmarks (issue2692)
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
13469
diff
changeset
|
106 |
71a96f6c205d
bookmarks: discard current bookmark if absent from the bookmarks (issue2692)
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
13469
diff
changeset
|
107 rollback dry run with rollback information and no commit undo |
71a96f6c205d
bookmarks: discard current bookmark if absent from the bookmarks (issue2692)
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
13469
diff
changeset
|
108 |
71a96f6c205d
bookmarks: discard current bookmark if absent from the bookmarks (issue2692)
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
13469
diff
changeset
|
109 $ rm .hg/store/undo |
71a96f6c205d
bookmarks: discard current bookmark if absent from the bookmarks (issue2692)
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
13469
diff
changeset
|
110 $ hg rollback -n |
13356
d96db730fcb2
bookmarks: merge rollback support into localrepo
Matt Mackall <mpm@selenic.com>
parents:
13307
diff
changeset
|
111 no rollback information available |
d96db730fcb2
bookmarks: merge rollback support into localrepo
Matt Mackall <mpm@selenic.com>
parents:
13307
diff
changeset
|
112 [1] |
13307
7f2b8aac7bdc
bookmarks: respect rollbacks dryrun parameter
David Soria Parra <dsp@php.net>
parents:
12640
diff
changeset
|
113 $ hg bookmarks |
13627
71a96f6c205d
bookmarks: discard current bookmark if absent from the bookmarks (issue2692)
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
13469
diff
changeset
|
114 * markb 1:fdb34407462c |
13307
7f2b8aac7bdc
bookmarks: respect rollbacks dryrun parameter
David Soria Parra <dsp@php.net>
parents:
12640
diff
changeset
|
115 |
12394 | 116 $ cd .. |
117 |