Mercurial > hg
annotate tests/test-serve.t @ 22196:23fe278bde43
largefiles: keep largefiles from colliding with normal one during linear merge
Before this patch, linear merging of modified or newly added largefile
causes unexpected result, if (1) largefile collides with same name
normal one in the target revision and (2) "local" largefile is chosen,
even though branch merging between such revisions doesn't.
Expected result of such linear merging is:
(1) (not yet recorded) largefile is kept in the working directory
(2) largefile is marked as (re-)"added"
(3) colliding normal file is marked as "removed"
But actual result is:
(1) largefile in the working directory is unlinked
(2) largefile is marked as "normal" (so treated as "missing")
(3) the dirstate entry for colliding normal file is just dropped
(1) is very serious, because there is no way to restore temporarily
modified largefiles.
(3) prevents the next commit from adding the manifest with correct
"removal of (normal) file" information for newly created changeset.
The root cause of this problem is putting "lfile" into "actions['r']"
in linear-merging case. At liner merging, "actions['r']" causes:
- unlinking "target file" in the working directory, but "lfile" as
"target file" is also largefile itself in this case
- dropping the dirstate entry for target file
"actions['f']" (= "forget") does only the latter, and this is reason
why this patch doesn't choose putting "lfile" into it instead of
"actions['r']".
This patch newly introduces action "lfmr" (LargeFiles: Mark as
Removed) to mark colliding normal file as "removed" without unlinking
it.
This patch uses "hg debugdirstate" instead of "hg status" in test,
because:
- choosing "local largefile" hides "removed" status of "remote
normal file" in "hg status" output, and
- "hg status" for "large2" in this case has another problem fixed in
the subsequent patch
author | FUJIWARA Katsunori <foozy@lares.dti.ne.jp> |
---|---|
date | Fri, 15 Aug 2014 20:28:51 +0900 |
parents | 7a9cbb315d84 |
children | 4d2b9b304ad0 |
rev | line source |
---|---|
22046
7a9cbb315d84
tests: replace exit 80 with #require
Matt Mackall <mpm@selenic.com>
parents:
20008
diff
changeset
|
1 #require serve |
13540
3ecadce9173d
tests: convert test-serve to new format
Patrick Mezard <pmezard@gmail.com>
parents:
12578
diff
changeset
|
2 |
3ecadce9173d
tests: convert test-serve to new format
Patrick Mezard <pmezard@gmail.com>
parents:
12578
diff
changeset
|
3 $ hgserve() |
3ecadce9173d
tests: convert test-serve to new format
Patrick Mezard <pmezard@gmail.com>
parents:
12578
diff
changeset
|
4 > { |
3ecadce9173d
tests: convert test-serve to new format
Patrick Mezard <pmezard@gmail.com>
parents:
12578
diff
changeset
|
5 > hg serve -a localhost -d --pid-file=hg.pid -E errors.log -v $@ \ |
3ecadce9173d
tests: convert test-serve to new format
Patrick Mezard <pmezard@gmail.com>
parents:
12578
diff
changeset
|
6 > | sed -e "s/:$HGPORT1\\([^0-9]\\)/:HGPORT1\1/g" \ |
3ecadce9173d
tests: convert test-serve to new format
Patrick Mezard <pmezard@gmail.com>
parents:
12578
diff
changeset
|
7 > -e "s/:$HGPORT2\\([^0-9]\\)/:HGPORT2\1/g" \ |
3ecadce9173d
tests: convert test-serve to new format
Patrick Mezard <pmezard@gmail.com>
parents:
12578
diff
changeset
|
8 > -e 's/http:\/\/[^/]*\//http:\/\/localhost\//' |
3ecadce9173d
tests: convert test-serve to new format
Patrick Mezard <pmezard@gmail.com>
parents:
12578
diff
changeset
|
9 > cat hg.pid >> "$DAEMON_PIDS" |
3ecadce9173d
tests: convert test-serve to new format
Patrick Mezard <pmezard@gmail.com>
parents:
12578
diff
changeset
|
10 > echo % errors |
3ecadce9173d
tests: convert test-serve to new format
Patrick Mezard <pmezard@gmail.com>
parents:
12578
diff
changeset
|
11 > cat errors.log |
18602
339a3fa19695
tests: remove last two check-code warnings about killdaemons
Kevin Bullock <kbullock@ringworld.org>
parents:
16913
diff
changeset
|
12 > "$TESTDIR/killdaemons.py" hg.pid |
13540
3ecadce9173d
tests: convert test-serve to new format
Patrick Mezard <pmezard@gmail.com>
parents:
12578
diff
changeset
|
13 > } |
4504
c68e6486f295
Add test reproducing a bug in "hg serve -v"
Joel Rosdahl <joel@rosdahl.net>
parents:
diff
changeset
|
14 |
13540
3ecadce9173d
tests: convert test-serve to new format
Patrick Mezard <pmezard@gmail.com>
parents:
12578
diff
changeset
|
15 $ hg init test |
3ecadce9173d
tests: convert test-serve to new format
Patrick Mezard <pmezard@gmail.com>
parents:
12578
diff
changeset
|
16 $ cd test |
3ecadce9173d
tests: convert test-serve to new format
Patrick Mezard <pmezard@gmail.com>
parents:
12578
diff
changeset
|
17 $ echo '[web]' > .hg/hgrc |
3ecadce9173d
tests: convert test-serve to new format
Patrick Mezard <pmezard@gmail.com>
parents:
12578
diff
changeset
|
18 $ echo 'accesslog = access.log' >> .hg/hgrc |
3ecadce9173d
tests: convert test-serve to new format
Patrick Mezard <pmezard@gmail.com>
parents:
12578
diff
changeset
|
19 $ echo "port = $HGPORT1" >> .hg/hgrc |
3ecadce9173d
tests: convert test-serve to new format
Patrick Mezard <pmezard@gmail.com>
parents:
12578
diff
changeset
|
20 |
3ecadce9173d
tests: convert test-serve to new format
Patrick Mezard <pmezard@gmail.com>
parents:
12578
diff
changeset
|
21 Without -v |
6300
874ca958025b
test-serve: replace copy/paste with shell function
Patrick Mezard <pmezard@gmail.com>
parents:
6262
diff
changeset
|
22 |
13540
3ecadce9173d
tests: convert test-serve to new format
Patrick Mezard <pmezard@gmail.com>
parents:
12578
diff
changeset
|
23 $ hg serve -a localhost -p $HGPORT -d --pid-file=hg.pid -E errors.log |
3ecadce9173d
tests: convert test-serve to new format
Patrick Mezard <pmezard@gmail.com>
parents:
12578
diff
changeset
|
24 $ cat hg.pid >> "$DAEMON_PIDS" |
3ecadce9173d
tests: convert test-serve to new format
Patrick Mezard <pmezard@gmail.com>
parents:
12578
diff
changeset
|
25 $ if [ -f access.log ]; then |
16487
4fe874697a4d
tests: fix incorrect markup of continued lines of sh commands
Mads Kiilerich <mads@kiilerich.com>
parents:
16364
diff
changeset
|
26 > echo 'access log created - .hg/hgrc respected' |
4fe874697a4d
tests: fix incorrect markup of continued lines of sh commands
Mads Kiilerich <mads@kiilerich.com>
parents:
16364
diff
changeset
|
27 > fi |
13540
3ecadce9173d
tests: convert test-serve to new format
Patrick Mezard <pmezard@gmail.com>
parents:
12578
diff
changeset
|
28 access log created - .hg/hgrc respected |
4504
c68e6486f295
Add test reproducing a bug in "hg serve -v"
Joel Rosdahl <joel@rosdahl.net>
parents:
diff
changeset
|
29 |
13540
3ecadce9173d
tests: convert test-serve to new format
Patrick Mezard <pmezard@gmail.com>
parents:
12578
diff
changeset
|
30 errors |
3ecadce9173d
tests: convert test-serve to new format
Patrick Mezard <pmezard@gmail.com>
parents:
12578
diff
changeset
|
31 |
3ecadce9173d
tests: convert test-serve to new format
Patrick Mezard <pmezard@gmail.com>
parents:
12578
diff
changeset
|
32 $ cat errors.log |
3ecadce9173d
tests: convert test-serve to new format
Patrick Mezard <pmezard@gmail.com>
parents:
12578
diff
changeset
|
33 |
3ecadce9173d
tests: convert test-serve to new format
Patrick Mezard <pmezard@gmail.com>
parents:
12578
diff
changeset
|
34 With -v |
4835
9858477ed74c
serve: respect settings from .hg/hgrc
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
4506
diff
changeset
|
35 |
13540
3ecadce9173d
tests: convert test-serve to new format
Patrick Mezard <pmezard@gmail.com>
parents:
12578
diff
changeset
|
36 $ hgserve |
3ecadce9173d
tests: convert test-serve to new format
Patrick Mezard <pmezard@gmail.com>
parents:
12578
diff
changeset
|
37 listening at http://localhost/ (bound to 127.0.0.1:HGPORT1) |
3ecadce9173d
tests: convert test-serve to new format
Patrick Mezard <pmezard@gmail.com>
parents:
12578
diff
changeset
|
38 % errors |
3ecadce9173d
tests: convert test-serve to new format
Patrick Mezard <pmezard@gmail.com>
parents:
12578
diff
changeset
|
39 |
3ecadce9173d
tests: convert test-serve to new format
Patrick Mezard <pmezard@gmail.com>
parents:
12578
diff
changeset
|
40 With -v and -p HGPORT2 |
3ecadce9173d
tests: convert test-serve to new format
Patrick Mezard <pmezard@gmail.com>
parents:
12578
diff
changeset
|
41 |
3ecadce9173d
tests: convert test-serve to new format
Patrick Mezard <pmezard@gmail.com>
parents:
12578
diff
changeset
|
42 $ hgserve -p "$HGPORT2" |
3ecadce9173d
tests: convert test-serve to new format
Patrick Mezard <pmezard@gmail.com>
parents:
12578
diff
changeset
|
43 listening at http://localhost/ (bound to 127.0.0.1:HGPORT2) |
3ecadce9173d
tests: convert test-serve to new format
Patrick Mezard <pmezard@gmail.com>
parents:
12578
diff
changeset
|
44 % errors |
4504
c68e6486f295
Add test reproducing a bug in "hg serve -v"
Joel Rosdahl <joel@rosdahl.net>
parents:
diff
changeset
|
45 |
13540
3ecadce9173d
tests: convert test-serve to new format
Patrick Mezard <pmezard@gmail.com>
parents:
12578
diff
changeset
|
46 With -v and -p daytime (should fail because low port) |
5971
6d5ecf824a65
tests for hg serve prefix option
Michele Cella <michele.cella@gmail.com>
parents:
5384
diff
changeset
|
47 |
20008
e54a078153f7
tests: skip tests that require not having root (issue4089)
Matt Mackall <mpm@selenic.com>
parents:
18602
diff
changeset
|
48 #if no-root |
13540
3ecadce9173d
tests: convert test-serve to new format
Patrick Mezard <pmezard@gmail.com>
parents:
12578
diff
changeset
|
49 $ KILLQUIETLY=Y |
3ecadce9173d
tests: convert test-serve to new format
Patrick Mezard <pmezard@gmail.com>
parents:
12578
diff
changeset
|
50 $ hgserve -p daytime |
3ecadce9173d
tests: convert test-serve to new format
Patrick Mezard <pmezard@gmail.com>
parents:
12578
diff
changeset
|
51 abort: cannot start server at 'localhost:13': Permission denied |
3ecadce9173d
tests: convert test-serve to new format
Patrick Mezard <pmezard@gmail.com>
parents:
12578
diff
changeset
|
52 abort: child process failed to start |
3ecadce9173d
tests: convert test-serve to new format
Patrick Mezard <pmezard@gmail.com>
parents:
12578
diff
changeset
|
53 % errors |
3ecadce9173d
tests: convert test-serve to new format
Patrick Mezard <pmezard@gmail.com>
parents:
12578
diff
changeset
|
54 $ KILLQUIETLY=N |
20008
e54a078153f7
tests: skip tests that require not having root (issue4089)
Matt Mackall <mpm@selenic.com>
parents:
18602
diff
changeset
|
55 #endif |
13540
3ecadce9173d
tests: convert test-serve to new format
Patrick Mezard <pmezard@gmail.com>
parents:
12578
diff
changeset
|
56 |
3ecadce9173d
tests: convert test-serve to new format
Patrick Mezard <pmezard@gmail.com>
parents:
12578
diff
changeset
|
57 With --prefix foo |
10633
3318431f2ab4
test-serve: Show if port config and option are correctly used
Thomas Arendsen Hein <thomas@intevation.de>
parents:
6461
diff
changeset
|
58 |
13540
3ecadce9173d
tests: convert test-serve to new format
Patrick Mezard <pmezard@gmail.com>
parents:
12578
diff
changeset
|
59 $ hgserve --prefix foo |
3ecadce9173d
tests: convert test-serve to new format
Patrick Mezard <pmezard@gmail.com>
parents:
12578
diff
changeset
|
60 listening at http://localhost/foo/ (bound to 127.0.0.1:HGPORT1) |
3ecadce9173d
tests: convert test-serve to new format
Patrick Mezard <pmezard@gmail.com>
parents:
12578
diff
changeset
|
61 % errors |
12076
49463314c24f
mail/hgweb: support service names for ports (issue2350)
Brodie Rao <brodie@bitheap.org>
parents:
10633
diff
changeset
|
62 |
13540
3ecadce9173d
tests: convert test-serve to new format
Patrick Mezard <pmezard@gmail.com>
parents:
12578
diff
changeset
|
63 With --prefix /foo |
3ecadce9173d
tests: convert test-serve to new format
Patrick Mezard <pmezard@gmail.com>
parents:
12578
diff
changeset
|
64 |
3ecadce9173d
tests: convert test-serve to new format
Patrick Mezard <pmezard@gmail.com>
parents:
12578
diff
changeset
|
65 $ hgserve --prefix /foo |
3ecadce9173d
tests: convert test-serve to new format
Patrick Mezard <pmezard@gmail.com>
parents:
12578
diff
changeset
|
66 listening at http://localhost/foo/ (bound to 127.0.0.1:HGPORT1) |
3ecadce9173d
tests: convert test-serve to new format
Patrick Mezard <pmezard@gmail.com>
parents:
12578
diff
changeset
|
67 % errors |
5971
6d5ecf824a65
tests for hg serve prefix option
Michele Cella <michele.cella@gmail.com>
parents:
5384
diff
changeset
|
68 |
13540
3ecadce9173d
tests: convert test-serve to new format
Patrick Mezard <pmezard@gmail.com>
parents:
12578
diff
changeset
|
69 With --prefix foo/ |
3ecadce9173d
tests: convert test-serve to new format
Patrick Mezard <pmezard@gmail.com>
parents:
12578
diff
changeset
|
70 |
3ecadce9173d
tests: convert test-serve to new format
Patrick Mezard <pmezard@gmail.com>
parents:
12578
diff
changeset
|
71 $ hgserve --prefix foo/ |
3ecadce9173d
tests: convert test-serve to new format
Patrick Mezard <pmezard@gmail.com>
parents:
12578
diff
changeset
|
72 listening at http://localhost/foo/ (bound to 127.0.0.1:HGPORT1) |
3ecadce9173d
tests: convert test-serve to new format
Patrick Mezard <pmezard@gmail.com>
parents:
12578
diff
changeset
|
73 % errors |
5971
6d5ecf824a65
tests for hg serve prefix option
Michele Cella <michele.cella@gmail.com>
parents:
5384
diff
changeset
|
74 |
13540
3ecadce9173d
tests: convert test-serve to new format
Patrick Mezard <pmezard@gmail.com>
parents:
12578
diff
changeset
|
75 With --prefix /foo/ |
5971
6d5ecf824a65
tests for hg serve prefix option
Michele Cella <michele.cella@gmail.com>
parents:
5384
diff
changeset
|
76 |
13540
3ecadce9173d
tests: convert test-serve to new format
Patrick Mezard <pmezard@gmail.com>
parents:
12578
diff
changeset
|
77 $ hgserve --prefix /foo/ |
3ecadce9173d
tests: convert test-serve to new format
Patrick Mezard <pmezard@gmail.com>
parents:
12578
diff
changeset
|
78 listening at http://localhost/foo/ (bound to 127.0.0.1:HGPORT1) |
3ecadce9173d
tests: convert test-serve to new format
Patrick Mezard <pmezard@gmail.com>
parents:
12578
diff
changeset
|
79 % errors |
16913
f2719b387380
tests: add missing trailing 'cd ..'
Mads Kiilerich <mads@kiilerich.com>
parents:
16487
diff
changeset
|
80 |
f2719b387380
tests: add missing trailing 'cd ..'
Mads Kiilerich <mads@kiilerich.com>
parents:
16487
diff
changeset
|
81 $ cd .. |