Mercurial > hg
annotate tests/test-hgweb-commands @ 11769:ca6cebd8734e stable
dirstate: ignore symlinks when fs cannot handle them (issue1888)
When the filesystem cannot handle the executable bit, we currently
ignore it completely when looking for modified files. Similarly, it is
impossible to set or clear the bit when the filesystem ignores it.
This patch makes Mercurial treat symbolic links the same way.
Symlinks are a little different since they manifest themselves as
small files containing a filename (the symlink target). On Windows,
these files show up as regular files, and on Linux and Mac they show
up as real symlinks.
Issue1888 presents a case where the symlink files are better ignored
from the Windows side. A Linux client creates symlinks in a working
copy which is shared over a network between Linux and Windows clients.
The Samba server is helpful and defererences the symlink when the
Windows client looks at it. This means that Mercurial on the Windows
side sees file content instead of a file name in the symlink, and
hence flags the link as modified. Ignoring the change would be much
more helpful, similarly to how Mercurial does not report any changes
when executable bits are ignored in a checkout on Windows.
An initial checkout of a symbolic link on a file system that cannot
handle symbolic links will still result in a regular file containing
the target file name as its content. Sharing such a checkout with a
Linux client will not turn the file into a symlink automatically, but
'hg revert' can fix that. After the revert, the Windows client will
see the correct file content (provided by the Samba server when it
follows the link on the Linux side) and otherwise ignore the change.
Running 'hg perfstatus' 10 times gives these results:
Before: After:
min: 0.544703 min: 0.546549
med: 0.547592 med: 0.548881
avg: 0.549146 avg: 0.548549
max: 0.564112 max: 0.551504
The median time is increased about 0.24%.
author | Martin Geisler <mg@aragost.com> |
---|---|
date | Mon, 09 Aug 2010 15:31:56 +0200 |
parents | aff419e260f9 |
children | a65ea28269ef |
rev | line source |
---|---|
5590
05451f6b5f07
add more tests for hgweb commands
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents:
diff
changeset
|
1 #!/bin/sh |
05451f6b5f07
add more tests for hgweb commands
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents:
diff
changeset
|
2 # An attempt at more fully testing the hgweb web interface. |
05451f6b5f07
add more tests for hgweb commands
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents:
diff
changeset
|
3 # The following things are tested elsewhere and are therefore omitted: |
05451f6b5f07
add more tests for hgweb commands
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents:
diff
changeset
|
4 # - archive, tested in test-archive |
05451f6b5f07
add more tests for hgweb commands
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents:
diff
changeset
|
5 # - unbundle, tested in test-push-http |
05451f6b5f07
add more tests for hgweb commands
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents:
diff
changeset
|
6 # - changegroupsubset, tested in test-pull |
05451f6b5f07
add more tests for hgweb commands
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents:
diff
changeset
|
7 |
05451f6b5f07
add more tests for hgweb commands
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents:
diff
changeset
|
8 echo % Set up the repo |
05451f6b5f07
add more tests for hgweb commands
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents:
diff
changeset
|
9 hg init test |
05451f6b5f07
add more tests for hgweb commands
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents:
diff
changeset
|
10 cd test |
05451f6b5f07
add more tests for hgweb commands
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents:
diff
changeset
|
11 mkdir da |
05451f6b5f07
add more tests for hgweb commands
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents:
diff
changeset
|
12 echo foo > da/foo |
05451f6b5f07
add more tests for hgweb commands
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents:
diff
changeset
|
13 echo foo > foo |
8167
6c82beaaa11a
tests: removed redundant "-d '0 0'" from test scripts
Martin Geisler <mg@lazybytes.net>
parents:
7544
diff
changeset
|
14 hg ci -Ambase |
5590
05451f6b5f07
add more tests for hgweb commands
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents:
diff
changeset
|
15 hg tag 1.0 |
8358
be2277c1dfcc
tests: add test for branches webcommand
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents:
8167
diff
changeset
|
16 echo another > foo |
be2277c1dfcc
tests: add test for branches webcommand
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents:
8167
diff
changeset
|
17 hg branch stable |
be2277c1dfcc
tests: add test for branches webcommand
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents:
8167
diff
changeset
|
18 hg ci -Ambranch |
10414
1a8df80dfdde
streaming: actually change default
Matt Mackall <mpm@selenic.com>
parents:
10248
diff
changeset
|
19 hg serve --config server.uncompressed=False -n test -p $HGPORT -d --pid-file=hg.pid -E errors.log |
5590
05451f6b5f07
add more tests for hgweb commands
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents:
diff
changeset
|
20 cat hg.pid >> $DAEMON_PIDS |
05451f6b5f07
add more tests for hgweb commands
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents:
diff
changeset
|
21 |
05451f6b5f07
add more tests for hgweb commands
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents:
diff
changeset
|
22 echo % Logs and changes |
05451f6b5f07
add more tests for hgweb commands
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents:
diff
changeset
|
23 "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT '/log/?style=atom' | sed "s/http:\/\/[^/]*\//http:\/\/127.0.0.1\//" |
05451f6b5f07
add more tests for hgweb commands
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents:
diff
changeset
|
24 "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT '/log/1/?style=atom' | sed "s/http:\/\/[^/]*\//http:\/\/127.0.0.1\//" |
05451f6b5f07
add more tests for hgweb commands
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents:
diff
changeset
|
25 "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT '/log/1/foo/?style=atom' | sed "s/http:\/\/[^/]*\//http:\/\/127.0.0.1\//" |
7544
c5e37dc38a52
test-hgweb-*: replace "XX years ago" by a fixed string in get-with-headers.py
Gilles Moris <gilles.moris@free.fr>
parents:
6786
diff
changeset
|
26 "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT '/shortlog/' |
c5e37dc38a52
test-hgweb-*: replace "XX years ago" by a fixed string in get-with-headers.py
Gilles Moris <gilles.moris@free.fr>
parents:
6786
diff
changeset
|
27 "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT '/rev/0/' |
5590
05451f6b5f07
add more tests for hgweb commands
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents:
diff
changeset
|
28 "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT '/rev/1/?style=raw' |
10248
4441e8d7f04f
hgweb: add a test for search logs
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents:
9946
diff
changeset
|
29 "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT '/log?rev=base' |
5590
05451f6b5f07
add more tests for hgweb commands
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents:
diff
changeset
|
30 |
05451f6b5f07
add more tests for hgweb commands
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents:
diff
changeset
|
31 echo % File-related |
05451f6b5f07
add more tests for hgweb commands
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents:
diff
changeset
|
32 "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT '/file/1/foo/?style=raw' |
05451f6b5f07
add more tests for hgweb commands
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents:
diff
changeset
|
33 "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT '/annotate/1/foo/?style=raw' |
05451f6b5f07
add more tests for hgweb commands
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents:
diff
changeset
|
34 "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT '/file/1/?style=raw' |
7544
c5e37dc38a52
test-hgweb-*: replace "XX years ago" by a fixed string in get-with-headers.py
Gilles Moris <gilles.moris@free.fr>
parents:
6786
diff
changeset
|
35 "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT '/file/1/foo' |
5590
05451f6b5f07
add more tests for hgweb commands
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents:
diff
changeset
|
36 "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT '/filediff/1/foo/?style=raw' |
05451f6b5f07
add more tests for hgweb commands
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents:
diff
changeset
|
37 |
05451f6b5f07
add more tests for hgweb commands
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents:
diff
changeset
|
38 echo % Overviews |
9946
2059be77d4f8
templates: add raw templates for tags/branches pages
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents:
8448
diff
changeset
|
39 "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT '/raw-tags' |
2059be77d4f8
templates: add raw templates for tags/branches pages
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents:
8448
diff
changeset
|
40 "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT '/raw-branches' |
7544
c5e37dc38a52
test-hgweb-*: replace "XX years ago" by a fixed string in get-with-headers.py
Gilles Moris <gilles.moris@free.fr>
parents:
6786
diff
changeset
|
41 "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT '/summary/?style=gitweb' |
c5e37dc38a52
test-hgweb-*: replace "XX years ago" by a fixed string in get-with-headers.py
Gilles Moris <gilles.moris@free.fr>
parents:
6786
diff
changeset
|
42 "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT '/graph/?style=gitweb' |
5590
05451f6b5f07
add more tests for hgweb commands
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents:
diff
changeset
|
43 |
5593
6ae8ed59c7b4
Fix breaking test from 05451f6b5f07
Bryan O'Sullivan <bos@serpentine.com>
parents:
5590
diff
changeset
|
44 echo % capabilities |
6777
44c5157474e7
hgweb: protocol requests are processed immediately
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents:
6335
diff
changeset
|
45 "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT '?cmd=capabilities' |
5593
6ae8ed59c7b4
Fix breaking test from 05451f6b5f07
Bryan O'Sullivan <bos@serpentine.com>
parents:
5590
diff
changeset
|
46 echo % heads |
6777
44c5157474e7
hgweb: protocol requests are processed immediately
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents:
6335
diff
changeset
|
47 "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT '?cmd=heads' |
5593
6ae8ed59c7b4
Fix breaking test from 05451f6b5f07
Bryan O'Sullivan <bos@serpentine.com>
parents:
5590
diff
changeset
|
48 echo % lookup |
6777
44c5157474e7
hgweb: protocol requests are processed immediately
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents:
6335
diff
changeset
|
49 "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT '?cmd=lookup&node=1' |
5593
6ae8ed59c7b4
Fix breaking test from 05451f6b5f07
Bryan O'Sullivan <bos@serpentine.com>
parents:
5590
diff
changeset
|
50 echo % branches |
6777
44c5157474e7
hgweb: protocol requests are processed immediately
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents:
6335
diff
changeset
|
51 "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT '?cmd=branches' |
5593
6ae8ed59c7b4
Fix breaking test from 05451f6b5f07
Bryan O'Sullivan <bos@serpentine.com>
parents:
5590
diff
changeset
|
52 echo % changegroup |
8446
e1f4343db740
tests: use repr.py to avoid binary characters in test output
Marti Raudsepp <marti@juffo.org>
parents:
8358
diff
changeset
|
53 "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT '?cmd=changegroup' \ |
8448
0eb8c4df61bd
tests: renamed helper to avoid clash with stdlib repr module
Martin Geisler <mg@lazybytes.net>
parents:
8446
diff
changeset
|
54 | $TESTDIR/printrepr.py |
5593
6ae8ed59c7b4
Fix breaking test from 05451f6b5f07
Bryan O'Sullivan <bos@serpentine.com>
parents:
5590
diff
changeset
|
55 echo % stream_out |
6777
44c5157474e7
hgweb: protocol requests are processed immediately
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents:
6335
diff
changeset
|
56 "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT '?cmd=stream_out' |
6335
e29557d687c9
hgweb: only accept POST requests for unbundle
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents:
6168
diff
changeset
|
57 echo % failing unbundle, requires POST request |
6777
44c5157474e7
hgweb: protocol requests are processed immediately
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents:
6335
diff
changeset
|
58 "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT '?cmd=unbundle' |
5590
05451f6b5f07
add more tests for hgweb commands
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents:
diff
changeset
|
59 |
05451f6b5f07
add more tests for hgweb commands
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents:
diff
changeset
|
60 echo % Static files |
05451f6b5f07
add more tests for hgweb commands
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents:
diff
changeset
|
61 "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT '/static/style.css' |
05451f6b5f07
add more tests for hgweb commands
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents:
diff
changeset
|
62 |
11765
aff419e260f9
templatefilters: make json filter handle multibyte characters correctly
Yuya Nishihara <yuya@tcha.org>
parents:
10414
diff
changeset
|
63 echo % Stop and restart with HGENCODING=cp932 |
aff419e260f9
templatefilters: make json filter handle multibyte characters correctly
Yuya Nishihara <yuya@tcha.org>
parents:
10414
diff
changeset
|
64 "$TESTDIR/killdaemons.py" |
aff419e260f9
templatefilters: make json filter handle multibyte characters correctly
Yuya Nishihara <yuya@tcha.org>
parents:
10414
diff
changeset
|
65 HGENCODING=cp932 hg serve --config server.uncompressed=False -n test \ |
aff419e260f9
templatefilters: make json filter handle multibyte characters correctly
Yuya Nishihara <yuya@tcha.org>
parents:
10414
diff
changeset
|
66 -p $HGPORT -d --pid-file=hg.pid -E errors.log |
aff419e260f9
templatefilters: make json filter handle multibyte characters correctly
Yuya Nishihara <yuya@tcha.org>
parents:
10414
diff
changeset
|
67 cat hg.pid >> $DAEMON_PIDS |
aff419e260f9
templatefilters: make json filter handle multibyte characters correctly
Yuya Nishihara <yuya@tcha.org>
parents:
10414
diff
changeset
|
68 |
aff419e260f9
templatefilters: make json filter handle multibyte characters correctly
Yuya Nishihara <yuya@tcha.org>
parents:
10414
diff
changeset
|
69 # commit message with Japanese Kanji 'Noh', which ends with '\x5c' |
aff419e260f9
templatefilters: make json filter handle multibyte characters correctly
Yuya Nishihara <yuya@tcha.org>
parents:
10414
diff
changeset
|
70 echo foo >> foo |
aff419e260f9
templatefilters: make json filter handle multibyte characters correctly
Yuya Nishihara <yuya@tcha.org>
parents:
10414
diff
changeset
|
71 HGENCODING=cp932 hg ci -m `python -c 'print("\x94\x5c")'` |
aff419e260f9
templatefilters: make json filter handle multibyte characters correctly
Yuya Nishihara <yuya@tcha.org>
parents:
10414
diff
changeset
|
72 |
aff419e260f9
templatefilters: make json filter handle multibyte characters correctly
Yuya Nishihara <yuya@tcha.org>
parents:
10414
diff
changeset
|
73 echo % Graph json escape of multibyte character |
aff419e260f9
templatefilters: make json filter handle multibyte characters correctly
Yuya Nishihara <yuya@tcha.org>
parents:
10414
diff
changeset
|
74 "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT '/graph/' \ |
aff419e260f9
templatefilters: make json filter handle multibyte characters correctly
Yuya Nishihara <yuya@tcha.org>
parents:
10414
diff
changeset
|
75 | grep '^var data =' |
aff419e260f9
templatefilters: make json filter handle multibyte characters correctly
Yuya Nishihara <yuya@tcha.org>
parents:
10414
diff
changeset
|
76 |
5590
05451f6b5f07
add more tests for hgweb commands
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents:
diff
changeset
|
77 echo % ERRORS ENCOUNTERED |
05451f6b5f07
add more tests for hgweb commands
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents:
diff
changeset
|
78 cat errors.log |