Mercurial > hg
annotate tests/test-hgwebdirsym.t @ 47072:4c041c71ec01
revlog: introduce an explicit tracking of what the revlog is about
Since the dawn of time, people have been forced to rely to lossy introspection
of the index filename to determine what the purpose and role of the revlog they
encounter is. This is hacky, error prone, inflexible, abstraction-leaky,
<insert-your-own-complaints-here>.
In f63299ee7e4d Raphaël introduced a new attribute to track this information:
`revlog_kind`. However it is initialized in an odd place and various instances
end up not having it set. In addition is only tracking some of the information
we end up having to introspect in various pieces of code.
So we add a new attribute that holds more data and is more strictly enforced.
This work is done in collaboration with Raphaël.
The `revlog_kind` one will be removed/adapted in the next changeset. We expect
to be able to clean up various existing piece of code and to simplify coming
work around the newer revlog format.
Differential Revision: https://phab.mercurial-scm.org/D10352
author | Pierre-Yves David <pierre-yves.david@octobus.net> |
---|---|
date | Tue, 06 Apr 2021 05:20:24 +0200 |
parents | 4d2b9b304ad0 |
children |
rev | line source |
---|---|
22046
7a9cbb315d84
tests: replace exit 80 with #require
Matt Mackall <mpm@selenic.com>
parents:
17017
diff
changeset
|
1 #require serve symlink |
6341
63bdfcc3eaaf
test: Add tests for webdir symlinks and walkrepos.
Eric Hopper <hopper@omnifarious.org>
parents:
diff
changeset
|
2 |
22046
7a9cbb315d84
tests: replace exit 80 with #require
Matt Mackall <mpm@selenic.com>
parents:
17017
diff
changeset
|
3 Tests whether or not hgwebdir properly handles various symlink topologies. |
17015
73d20de5f30b
tests: add missing no-outer-repo requirements
Mads Kiilerich <mads@kiilerich.com>
parents:
15446
diff
changeset
|
4 |
73d20de5f30b
tests: add missing no-outer-repo requirements
Mads Kiilerich <mads@kiilerich.com>
parents:
15446
diff
changeset
|
5 hide outer repo |
73d20de5f30b
tests: add missing no-outer-repo requirements
Mads Kiilerich <mads@kiilerich.com>
parents:
15446
diff
changeset
|
6 $ hg init |
73d20de5f30b
tests: add missing no-outer-repo requirements
Mads Kiilerich <mads@kiilerich.com>
parents:
15446
diff
changeset
|
7 |
12444
a4c19a900794
tests: unify test-hgwebdirsym
Matt Mackall <mpm@selenic.com>
parents:
6341
diff
changeset
|
8 $ hg init a |
a4c19a900794
tests: unify test-hgwebdirsym
Matt Mackall <mpm@selenic.com>
parents:
6341
diff
changeset
|
9 $ echo a > a/a |
a4c19a900794
tests: unify test-hgwebdirsym
Matt Mackall <mpm@selenic.com>
parents:
6341
diff
changeset
|
10 $ hg --cwd a ci -Ama -d'1 0' |
a4c19a900794
tests: unify test-hgwebdirsym
Matt Mackall <mpm@selenic.com>
parents:
6341
diff
changeset
|
11 adding a |
a4c19a900794
tests: unify test-hgwebdirsym
Matt Mackall <mpm@selenic.com>
parents:
6341
diff
changeset
|
12 $ mkdir webdir |
a4c19a900794
tests: unify test-hgwebdirsym
Matt Mackall <mpm@selenic.com>
parents:
6341
diff
changeset
|
13 $ cd webdir |
a4c19a900794
tests: unify test-hgwebdirsym
Matt Mackall <mpm@selenic.com>
parents:
6341
diff
changeset
|
14 $ hg init b |
a4c19a900794
tests: unify test-hgwebdirsym
Matt Mackall <mpm@selenic.com>
parents:
6341
diff
changeset
|
15 $ echo b > b/b |
a4c19a900794
tests: unify test-hgwebdirsym
Matt Mackall <mpm@selenic.com>
parents:
6341
diff
changeset
|
16 $ hg --cwd b ci -Amb -d'2 0' |
a4c19a900794
tests: unify test-hgwebdirsym
Matt Mackall <mpm@selenic.com>
parents:
6341
diff
changeset
|
17 adding b |
a4c19a900794
tests: unify test-hgwebdirsym
Matt Mackall <mpm@selenic.com>
parents:
6341
diff
changeset
|
18 $ hg init c |
a4c19a900794
tests: unify test-hgwebdirsym
Matt Mackall <mpm@selenic.com>
parents:
6341
diff
changeset
|
19 $ echo c > c/c |
a4c19a900794
tests: unify test-hgwebdirsym
Matt Mackall <mpm@selenic.com>
parents:
6341
diff
changeset
|
20 $ hg --cwd c ci -Amc -d'3 0' |
a4c19a900794
tests: unify test-hgwebdirsym
Matt Mackall <mpm@selenic.com>
parents:
6341
diff
changeset
|
21 adding c |
a4c19a900794
tests: unify test-hgwebdirsym
Matt Mackall <mpm@selenic.com>
parents:
6341
diff
changeset
|
22 $ ln -s ../a al |
a4c19a900794
tests: unify test-hgwebdirsym
Matt Mackall <mpm@selenic.com>
parents:
6341
diff
changeset
|
23 $ ln -s ../webdir circle |
a4c19a900794
tests: unify test-hgwebdirsym
Matt Mackall <mpm@selenic.com>
parents:
6341
diff
changeset
|
24 $ root=`pwd` |
a4c19a900794
tests: unify test-hgwebdirsym
Matt Mackall <mpm@selenic.com>
parents:
6341
diff
changeset
|
25 $ cd .. |
a4c19a900794
tests: unify test-hgwebdirsym
Matt Mackall <mpm@selenic.com>
parents:
6341
diff
changeset
|
26 $ cat > collections.conf <<EOF |
a4c19a900794
tests: unify test-hgwebdirsym
Matt Mackall <mpm@selenic.com>
parents:
6341
diff
changeset
|
27 > [collections] |
a4c19a900794
tests: unify test-hgwebdirsym
Matt Mackall <mpm@selenic.com>
parents:
6341
diff
changeset
|
28 > $root=$root |
a4c19a900794
tests: unify test-hgwebdirsym
Matt Mackall <mpm@selenic.com>
parents:
6341
diff
changeset
|
29 > EOF |
a4c19a900794
tests: unify test-hgwebdirsym
Matt Mackall <mpm@selenic.com>
parents:
6341
diff
changeset
|
30 $ hg serve -p $HGPORT -d --pid-file=hg.pid --webdir-conf collections.conf \ |
a4c19a900794
tests: unify test-hgwebdirsym
Matt Mackall <mpm@selenic.com>
parents:
6341
diff
changeset
|
31 > -A access-collections.log -E error-collections.log |
a4c19a900794
tests: unify test-hgwebdirsym
Matt Mackall <mpm@selenic.com>
parents:
6341
diff
changeset
|
32 $ cat hg.pid >> $DAEMON_PIDS |
6341
63bdfcc3eaaf
test: Add tests for webdir symlinks and walkrepos.
Eric Hopper <hopper@omnifarious.org>
parents:
diff
changeset
|
33 |
12444
a4c19a900794
tests: unify test-hgwebdirsym
Matt Mackall <mpm@selenic.com>
parents:
6341
diff
changeset
|
34 should succeed |
6341
63bdfcc3eaaf
test: Add tests for webdir symlinks and walkrepos.
Eric Hopper <hopper@omnifarious.org>
parents:
diff
changeset
|
35 |
25472
4d2b9b304ad0
tests: drop explicit $TESTDIR from executables
Matt Mackall <mpm@selenic.com>
parents:
22046
diff
changeset
|
36 $ get-with-headers.py localhost:$HGPORT '?style=raw' |
12444
a4c19a900794
tests: unify test-hgwebdirsym
Matt Mackall <mpm@selenic.com>
parents:
6341
diff
changeset
|
37 200 Script output follows |
a4c19a900794
tests: unify test-hgwebdirsym
Matt Mackall <mpm@selenic.com>
parents:
6341
diff
changeset
|
38 |
a4c19a900794
tests: unify test-hgwebdirsym
Matt Mackall <mpm@selenic.com>
parents:
6341
diff
changeset
|
39 |
a4c19a900794
tests: unify test-hgwebdirsym
Matt Mackall <mpm@selenic.com>
parents:
6341
diff
changeset
|
40 /al/ |
a4c19a900794
tests: unify test-hgwebdirsym
Matt Mackall <mpm@selenic.com>
parents:
6341
diff
changeset
|
41 /b/ |
a4c19a900794
tests: unify test-hgwebdirsym
Matt Mackall <mpm@selenic.com>
parents:
6341
diff
changeset
|
42 /c/ |
a4c19a900794
tests: unify test-hgwebdirsym
Matt Mackall <mpm@selenic.com>
parents:
6341
diff
changeset
|
43 |
25472
4d2b9b304ad0
tests: drop explicit $TESTDIR from executables
Matt Mackall <mpm@selenic.com>
parents:
22046
diff
changeset
|
44 $ get-with-headers.py localhost:$HGPORT 'al/file/tip/a?style=raw' |
12444
a4c19a900794
tests: unify test-hgwebdirsym
Matt Mackall <mpm@selenic.com>
parents:
6341
diff
changeset
|
45 200 Script output follows |
a4c19a900794
tests: unify test-hgwebdirsym
Matt Mackall <mpm@selenic.com>
parents:
6341
diff
changeset
|
46 |
a4c19a900794
tests: unify test-hgwebdirsym
Matt Mackall <mpm@selenic.com>
parents:
6341
diff
changeset
|
47 a |
25472
4d2b9b304ad0
tests: drop explicit $TESTDIR from executables
Matt Mackall <mpm@selenic.com>
parents:
22046
diff
changeset
|
48 $ get-with-headers.py localhost:$HGPORT 'b/file/tip/b?style=raw' |
12444
a4c19a900794
tests: unify test-hgwebdirsym
Matt Mackall <mpm@selenic.com>
parents:
6341
diff
changeset
|
49 200 Script output follows |
a4c19a900794
tests: unify test-hgwebdirsym
Matt Mackall <mpm@selenic.com>
parents:
6341
diff
changeset
|
50 |
a4c19a900794
tests: unify test-hgwebdirsym
Matt Mackall <mpm@selenic.com>
parents:
6341
diff
changeset
|
51 b |
25472
4d2b9b304ad0
tests: drop explicit $TESTDIR from executables
Matt Mackall <mpm@selenic.com>
parents:
22046
diff
changeset
|
52 $ get-with-headers.py localhost:$HGPORT 'c/file/tip/c?style=raw' |
12444
a4c19a900794
tests: unify test-hgwebdirsym
Matt Mackall <mpm@selenic.com>
parents:
6341
diff
changeset
|
53 200 Script output follows |
a4c19a900794
tests: unify test-hgwebdirsym
Matt Mackall <mpm@selenic.com>
parents:
6341
diff
changeset
|
54 |
a4c19a900794
tests: unify test-hgwebdirsym
Matt Mackall <mpm@selenic.com>
parents:
6341
diff
changeset
|
55 c |
6341
63bdfcc3eaaf
test: Add tests for webdir symlinks and walkrepos.
Eric Hopper <hopper@omnifarious.org>
parents:
diff
changeset
|
56 |
12444
a4c19a900794
tests: unify test-hgwebdirsym
Matt Mackall <mpm@selenic.com>
parents:
6341
diff
changeset
|
57 should fail |
6341
63bdfcc3eaaf
test: Add tests for webdir symlinks and walkrepos.
Eric Hopper <hopper@omnifarious.org>
parents:
diff
changeset
|
58 |
25472
4d2b9b304ad0
tests: drop explicit $TESTDIR from executables
Matt Mackall <mpm@selenic.com>
parents:
22046
diff
changeset
|
59 $ get-with-headers.py localhost:$HGPORT 'circle/al/file/tip/a?style=raw' |
12444
a4c19a900794
tests: unify test-hgwebdirsym
Matt Mackall <mpm@selenic.com>
parents:
6341
diff
changeset
|
60 404 Not Found |
a4c19a900794
tests: unify test-hgwebdirsym
Matt Mackall <mpm@selenic.com>
parents:
6341
diff
changeset
|
61 |
a4c19a900794
tests: unify test-hgwebdirsym
Matt Mackall <mpm@selenic.com>
parents:
6341
diff
changeset
|
62 |
13066
86888ae9ce90
hgwebdir: fix incorrect index generation for invalid paths (issue2023)
Wagner Bruna <wbruna@softwareexpress.com.br>
parents:
12444
diff
changeset
|
63 error: repository circle/al/file/tip/a not found |
12444
a4c19a900794
tests: unify test-hgwebdirsym
Matt Mackall <mpm@selenic.com>
parents:
6341
diff
changeset
|
64 [1] |
25472
4d2b9b304ad0
tests: drop explicit $TESTDIR from executables
Matt Mackall <mpm@selenic.com>
parents:
22046
diff
changeset
|
65 $ get-with-headers.py localhost:$HGPORT 'circle/b/file/tip/a?style=raw' |
12444
a4c19a900794
tests: unify test-hgwebdirsym
Matt Mackall <mpm@selenic.com>
parents:
6341
diff
changeset
|
66 404 Not Found |
a4c19a900794
tests: unify test-hgwebdirsym
Matt Mackall <mpm@selenic.com>
parents:
6341
diff
changeset
|
67 |
a4c19a900794
tests: unify test-hgwebdirsym
Matt Mackall <mpm@selenic.com>
parents:
6341
diff
changeset
|
68 |
13066
86888ae9ce90
hgwebdir: fix incorrect index generation for invalid paths (issue2023)
Wagner Bruna <wbruna@softwareexpress.com.br>
parents:
12444
diff
changeset
|
69 error: repository circle/b/file/tip/a not found |
12444
a4c19a900794
tests: unify test-hgwebdirsym
Matt Mackall <mpm@selenic.com>
parents:
6341
diff
changeset
|
70 [1] |
25472
4d2b9b304ad0
tests: drop explicit $TESTDIR from executables
Matt Mackall <mpm@selenic.com>
parents:
22046
diff
changeset
|
71 $ get-with-headers.py localhost:$HGPORT 'circle/c/file/tip/a?style=raw' |
12444
a4c19a900794
tests: unify test-hgwebdirsym
Matt Mackall <mpm@selenic.com>
parents:
6341
diff
changeset
|
72 404 Not Found |
a4c19a900794
tests: unify test-hgwebdirsym
Matt Mackall <mpm@selenic.com>
parents:
6341
diff
changeset
|
73 |
a4c19a900794
tests: unify test-hgwebdirsym
Matt Mackall <mpm@selenic.com>
parents:
6341
diff
changeset
|
74 |
13066
86888ae9ce90
hgwebdir: fix incorrect index generation for invalid paths (issue2023)
Wagner Bruna <wbruna@softwareexpress.com.br>
parents:
12444
diff
changeset
|
75 error: repository circle/c/file/tip/a not found |
12444
a4c19a900794
tests: unify test-hgwebdirsym
Matt Mackall <mpm@selenic.com>
parents:
6341
diff
changeset
|
76 [1] |
6341
63bdfcc3eaaf
test: Add tests for webdir symlinks and walkrepos.
Eric Hopper <hopper@omnifarious.org>
parents:
diff
changeset
|
77 |
12444
a4c19a900794
tests: unify test-hgwebdirsym
Matt Mackall <mpm@selenic.com>
parents:
6341
diff
changeset
|
78 collections errors |
6341
63bdfcc3eaaf
test: Add tests for webdir symlinks and walkrepos.
Eric Hopper <hopper@omnifarious.org>
parents:
diff
changeset
|
79 |
12444
a4c19a900794
tests: unify test-hgwebdirsym
Matt Mackall <mpm@selenic.com>
parents:
6341
diff
changeset
|
80 $ cat error-collections.log |