Mercurial > hg
annotate tests/test-inotify.t @ 18793:a821ec835223
completion: selectively use debugpathcomplete in bash_completion
The current bash_completion code can be very slow in a large working
directory. It always uses "hg status" to generate possibly matching
files, which checks the status of every file. We often don't care
about status when completing, so that cost is very high.
As the new debugpathcomplete command does not check the status of
files, it offers much better performance for commands that only
care about completing names.
author | Bryan O'Sullivan <bryano@fb.com> |
---|---|
date | Thu, 21 Mar 2013 16:31:29 -0700 |
parents | 37479af47bd0 |
children |
rev | line source |
---|---|
7145
6f4a253f2a64
inotify: fix status not showing "clean" files (issue907)
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
diff
changeset
|
1 |
12450 | 2 $ "$TESTDIR/hghave" inotify || exit 80 |
3 $ hg init repo1 | |
4 $ cd repo1 | |
5 $ touch a b c d e | |
6 $ mkdir dir | |
7 $ mkdir dir/bar | |
8 $ touch dir/x dir/y dir/bar/foo | |
9 $ hg ci -Am m | |
10 adding a | |
11 adding b | |
12 adding c | |
13 adding d | |
14 adding dir/bar/foo | |
15 adding dir/x | |
16 adding dir/y | |
17 adding e | |
18 $ cd .. | |
19 $ hg clone repo1 repo2 | |
20 updating to branch default | |
21 8 files updated, 0 files merged, 0 files removed, 0 files unresolved | |
22 $ echo "[extensions]" >> $HGRCPATH | |
23 $ echo "inotify=" >> $HGRCPATH | |
24 $ cd repo2 | |
25 $ echo b >> a | |
7145
6f4a253f2a64
inotify: fix status not showing "clean" files (issue907)
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
diff
changeset
|
26 |
12450 | 27 check that daemon started automatically works correctly |
28 and make sure that inotify.pidfile works | |
7145
6f4a253f2a64
inotify: fix status not showing "clean" files (issue907)
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
diff
changeset
|
29 |
12450 | 30 $ hg --config "inotify.pidfile=../hg2.pid" status |
31 M a | |
32 | |
33 make sure that pidfile worked. Output should be silent. | |
9897
97eda2133a9b
inotify: add a inotify.pidfile configuration possibility
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
9896
diff
changeset
|
34 |
18595
37479af47bd0
test-inotify.t: migrate to killdaemons from kill `cat pidfile`
Augie Fackler <raf@durin42.com>
parents:
18098
diff
changeset
|
35 $ "$TESTDIR/killdaemons.py" ../hg2.pid |
12450 | 36 $ cd ../repo1 |
37 | |
38 inserve | |
39 | |
40 $ hg inserve -d --pid-file=hg.pid | |
41 $ cat hg.pid >> "$DAEMON_PIDS" | |
9896
2c2f7593ffc4
cmdutil.service: do not _exit(0) in the parent process
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
9854
diff
changeset
|
42 |
12450 | 43 let the daemon finish its stuff |
44 | |
45 $ sleep 1 | |
7145
6f4a253f2a64
inotify: fix status not showing "clean" files (issue907)
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
diff
changeset
|
46 |
12450 | 47 cannot start, already bound |
9900
8939900073a8
inotify: improve error messages
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
9897
diff
changeset
|
48 |
12450 | 49 $ hg inserve |
50 abort: inotify-server: cannot start: socket is already bound | |
51 [255] | |
9900
8939900073a8
inotify: improve error messages
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
9897
diff
changeset
|
52 |
12450 | 53 issue907 |
54 | |
55 $ hg status | |
56 ? hg.pid | |
57 | |
58 clean | |
7145
6f4a253f2a64
inotify: fix status not showing "clean" files (issue907)
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
diff
changeset
|
59 |
12450 | 60 $ hg status -c |
61 C a | |
62 C b | |
63 C c | |
64 C d | |
65 C dir/bar/foo | |
66 C dir/x | |
67 C dir/y | |
68 C e | |
69 | |
70 all | |
7393
92c952c4470c
inotify: fix status . in repo.root
Brendan Cully <brendan@kublai.com>
parents:
7351
diff
changeset
|
71 |
12450 | 72 $ hg status -A |
73 ? hg.pid | |
74 C a | |
75 C b | |
76 C c | |
77 C d | |
78 C dir/bar/foo | |
79 C dir/x | |
80 C dir/y | |
81 C e | |
9116
f90bbf1ea09f
inotify: fix issue1375, add a test.
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
7393
diff
changeset
|
82 |
12450 | 83 path patterns |
9116
f90bbf1ea09f
inotify: fix issue1375, add a test.
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
7393
diff
changeset
|
84 |
12450 | 85 $ echo x > dir/x |
86 $ hg status . | |
87 M dir/x | |
88 ? hg.pid | |
89 $ hg status dir | |
90 M dir/x | |
91 $ cd dir | |
92 $ hg status . | |
93 M x | |
94 $ cd .. | |
9117
a87bc6e2a907
inotify: server: explicitely ignore events in subdirs of .hg/ (issue1735)
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
9116
diff
changeset
|
95 |
12450 | 96 issue 1375 |
97 testing that we can remove a folder and then add a file with the same name | |
98 issue 1375 | |
9117
a87bc6e2a907
inotify: server: explicitely ignore events in subdirs of .hg/ (issue1735)
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
9116
diff
changeset
|
99 |
12450 | 100 $ mkdir h |
101 $ echo h > h/h | |
102 $ hg ci -Am t | |
103 adding h/h | |
104 adding hg.pid | |
105 $ hg rm h | |
106 removing h/h | |
107 $ echo h >h | |
108 $ hg add h | |
109 $ hg status | |
110 A h | |
111 R h/h | |
112 $ hg ci -m0 | |
9117
a87bc6e2a907
inotify: server: explicitely ignore events in subdirs of .hg/ (issue1735)
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
9116
diff
changeset
|
113 |
12450 | 114 Test for issue1735: inotify watches files in .hg/merge |
9117
a87bc6e2a907
inotify: server: explicitely ignore events in subdirs of .hg/ (issue1735)
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
9116
diff
changeset
|
115 |
12450 | 116 $ hg st |
117 $ echo a > a | |
118 $ hg ci -Am a | |
119 $ hg st | |
120 $ echo b >> a | |
121 $ hg ci -m ab | |
122 $ hg st | |
123 $ echo c >> a | |
124 $ hg st | |
125 M a | |
126 $ HGMERGE=internal:local hg up 0 | |
127 1 files updated, 1 files merged, 2 files removed, 0 files unresolved | |
128 $ hg st | |
129 M a | |
130 $ HGMERGE=internal:local hg up | |
131 3 files updated, 1 files merged, 0 files removed, 0 files unresolved | |
132 $ hg st | |
133 M a | |
9854
95e1867f765b
inotify: mark directories visited during lookup (issue1844)
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
9117
diff
changeset
|
134 |
12450 | 135 Test for 1844: "hg ci folder" will not commit all changes beneath "folder" |
9854
95e1867f765b
inotify: mark directories visited during lookup (issue1844)
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
9117
diff
changeset
|
136 |
12450 | 137 $ mkdir 1844 |
138 $ echo a > 1844/foo | |
139 $ hg add 1844 | |
140 adding 1844/foo | |
141 $ hg ci -m 'working' | |
142 $ echo b >> 1844/foo | |
143 $ hg ci 1844 -m 'broken' | |
144 | |
145 Test for issue884: "Build products not ignored until .hgignore is touched" | |
11545
db9d16233787
inotify: check all components of filenames against hgignore (issue884)
Renato Cunha <renatoc@gmail.com>
parents:
10944
diff
changeset
|
146 |
12450 | 147 $ echo '^build$' > .hgignore |
148 $ hg add .hgignore | |
149 $ hg ci .hgignore -m 'ignorelist' | |
150 | |
151 Now, lets add some build products... | |
11545
db9d16233787
inotify: check all components of filenames against hgignore (issue884)
Renato Cunha <renatoc@gmail.com>
parents:
10944
diff
changeset
|
152 |
12450 | 153 $ mkdir build |
154 $ touch build/x | |
155 $ touch build/y | |
11545
db9d16233787
inotify: check all components of filenames against hgignore (issue884)
Renato Cunha <renatoc@gmail.com>
parents:
10944
diff
changeset
|
156 |
12450 | 157 build/x & build/y shouldn't appear in "hg st" |
158 | |
159 $ hg st | |
18595
37479af47bd0
test-inotify.t: migrate to killdaemons from kill `cat pidfile`
Augie Fackler <raf@durin42.com>
parents:
18098
diff
changeset
|
160 $ "$TESTDIR/killdaemons.py" hg.pid |
16913
f2719b387380
tests: add missing trailing 'cd ..'
Mads Kiilerich <mads@kiilerich.com>
parents:
12450
diff
changeset
|
161 |
f2719b387380
tests: add missing trailing 'cd ..'
Mads Kiilerich <mads@kiilerich.com>
parents:
12450
diff
changeset
|
162 $ cd .. |
18095
8cbe0fed0c1f
test-inotify: test symlink indirection for unix sockets
Bryan O'Sullivan <bryano@fb.com>
parents:
16913
diff
changeset
|
163 |
8cbe0fed0c1f
test-inotify: test symlink indirection for unix sockets
Bryan O'Sullivan <bryano@fb.com>
parents:
16913
diff
changeset
|
164 Ensure that if the repo is in a directory whose name is too long, the |
8cbe0fed0c1f
test-inotify: test symlink indirection for unix sockets
Bryan O'Sullivan <bryano@fb.com>
parents:
16913
diff
changeset
|
165 unix domain socket is reached through a symlink (issue1208). |
8cbe0fed0c1f
test-inotify: test symlink indirection for unix sockets
Bryan O'Sullivan <bryano@fb.com>
parents:
16913
diff
changeset
|
166 |
8cbe0fed0c1f
test-inotify: test symlink indirection for unix sockets
Bryan O'Sullivan <bryano@fb.com>
parents:
16913
diff
changeset
|
167 $ mkdir 0_3456789_10_456789_20_456789_30_456789_40_456789_50_45678_ |
8cbe0fed0c1f
test-inotify: test symlink indirection for unix sockets
Bryan O'Sullivan <bryano@fb.com>
parents:
16913
diff
changeset
|
168 $ cd 0_3456789_10_456789_20_456789_30_456789_40_456789_50_45678_ |
8cbe0fed0c1f
test-inotify: test symlink indirection for unix sockets
Bryan O'Sullivan <bryano@fb.com>
parents:
16913
diff
changeset
|
169 $ mkdir 60_456789_70_456789_80_456789_90_456789_100_56789_ |
8cbe0fed0c1f
test-inotify: test symlink indirection for unix sockets
Bryan O'Sullivan <bryano@fb.com>
parents:
16913
diff
changeset
|
170 $ cd 60_456789_70_456789_80_456789_90_456789_100_56789_ |
8cbe0fed0c1f
test-inotify: test symlink indirection for unix sockets
Bryan O'Sullivan <bryano@fb.com>
parents:
16913
diff
changeset
|
171 |
8cbe0fed0c1f
test-inotify: test symlink indirection for unix sockets
Bryan O'Sullivan <bryano@fb.com>
parents:
16913
diff
changeset
|
172 $ hg --config inotify.pidfile=hg3.pid clone -q ../../repo1 |
8cbe0fed0c1f
test-inotify: test symlink indirection for unix sockets
Bryan O'Sullivan <bryano@fb.com>
parents:
16913
diff
changeset
|
173 $ readlink repo1/.hg/inotify.sock |
8cbe0fed0c1f
test-inotify: test symlink indirection for unix sockets
Bryan O'Sullivan <bryano@fb.com>
parents:
16913
diff
changeset
|
174 */inotify.sock (glob) |
18098
8c4e4661a0cb
tests: make test-inotify-issue1208.t disappear
Bryan O'Sullivan <bryano@fb.com>
parents:
18095
diff
changeset
|
175 |
8c4e4661a0cb
tests: make test-inotify-issue1208.t disappear
Bryan O'Sullivan <bryano@fb.com>
parents:
18095
diff
changeset
|
176 Trying to start the server a second time should fail as usual. |
8c4e4661a0cb
tests: make test-inotify-issue1208.t disappear
Bryan O'Sullivan <bryano@fb.com>
parents:
18095
diff
changeset
|
177 |
8c4e4661a0cb
tests: make test-inotify-issue1208.t disappear
Bryan O'Sullivan <bryano@fb.com>
parents:
18095
diff
changeset
|
178 $ hg --cwd repo1 inserve |
8c4e4661a0cb
tests: make test-inotify-issue1208.t disappear
Bryan O'Sullivan <bryano@fb.com>
parents:
18095
diff
changeset
|
179 abort: inotify-server: cannot start: socket is already bound |
8c4e4661a0cb
tests: make test-inotify-issue1208.t disappear
Bryan O'Sullivan <bryano@fb.com>
parents:
18095
diff
changeset
|
180 [255] |
8c4e4661a0cb
tests: make test-inotify-issue1208.t disappear
Bryan O'Sullivan <bryano@fb.com>
parents:
18095
diff
changeset
|
181 |
18595
37479af47bd0
test-inotify.t: migrate to killdaemons from kill `cat pidfile`
Augie Fackler <raf@durin42.com>
parents:
18098
diff
changeset
|
182 $ "$TESTDIR/killdaemons.py" hg3.pid |