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
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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