##// END OF EJS Templates
hgweb: add index template to json/map...
av6 -
r28268:3643b66d default
parent child Browse files
Show More
@@ -1,174 +1,183 b''
1 mimetype = 'application/json'
1 mimetype = 'application/json'
2 filerevision = '"not yet implemented"'
2 filerevision = '"not yet implemented"'
3 search = '"not yet implemented"'
3 search = '"not yet implemented"'
4 # changelog and shortlog are the same web API but with different
4 # changelog and shortlog are the same web API but with different
5 # number of entries.
5 # number of entries.
6 changelog = changelist.tmpl
6 changelog = changelist.tmpl
7 shortlog = changelist.tmpl
7 shortlog = changelist.tmpl
8 changelistentry = '\{
8 changelistentry = '\{
9 "node": {node|json},
9 "node": {node|json},
10 "date": {date|json},
10 "date": {date|json},
11 "desc": {desc|utf8|json},
11 "desc": {desc|utf8|json},
12 "bookmarks": [{join(bookmarks%changelistentryname, ", ")}],
12 "bookmarks": [{join(bookmarks%changelistentryname, ", ")}],
13 "tags": [{join(tags%changelistentryname, ", ")}],
13 "tags": [{join(tags%changelistentryname, ", ")}],
14 "user": {author|utf8|json}
14 "user": {author|utf8|json}
15 }'
15 }'
16 changelistentryname = '{name|utf8|json}'
16 changelistentryname = '{name|utf8|json}'
17 changeset = '\{
17 changeset = '\{
18 "node": {node|json},
18 "node": {node|json},
19 "date": {date|json},
19 "date": {date|json},
20 "desc": {desc|utf8|json},
20 "desc": {desc|utf8|json},
21 "branch": {if(branch, branch%changesetbranch, "default"|json)},
21 "branch": {if(branch, branch%changesetbranch, "default"|json)},
22 "bookmarks": [{join(changesetbookmark, ", ")}],
22 "bookmarks": [{join(changesetbookmark, ", ")}],
23 "tags": [{join(changesettag, ", ")}],
23 "tags": [{join(changesettag, ", ")}],
24 "user": {author|utf8|json},
24 "user": {author|utf8|json},
25 "parents": [{join(parent%changesetparent, ", ")}],
25 "parents": [{join(parent%changesetparent, ", ")}],
26 "phase": {phase|json}
26 "phase": {phase|json}
27 }'
27 }'
28 changesetbranch = '{name|utf8|json}'
28 changesetbranch = '{name|utf8|json}'
29 changesetbookmark = '{bookmark|utf8|json}'
29 changesetbookmark = '{bookmark|utf8|json}'
30 changesettag = '{tag|utf8|json}'
30 changesettag = '{tag|utf8|json}'
31 changesetparent = '{node|json}'
31 changesetparent = '{node|json}'
32 manifest = '\{
32 manifest = '\{
33 "node": {node|json},
33 "node": {node|json},
34 "abspath": {path|json},
34 "abspath": {path|json},
35 "directories": [{join(dentries%direntry, ", ")}],
35 "directories": [{join(dentries%direntry, ", ")}],
36 "files": [{join(fentries%fileentry, ", ")}],
36 "files": [{join(fentries%fileentry, ", ")}],
37 "bookmarks": [{join(bookmarks%name, ", ")}],
37 "bookmarks": [{join(bookmarks%name, ", ")}],
38 "tags": [{join(tags%name, ", ")}]
38 "tags": [{join(tags%name, ", ")}]
39 }'
39 }'
40 name = '{name|utf8|json}'
40 name = '{name|utf8|json}'
41 direntry = '\{
41 direntry = '\{
42 "abspath": {path|json},
42 "abspath": {path|json},
43 "basename": {basename|json},
43 "basename": {basename|json},
44 "emptydirs": {emptydirs|json}
44 "emptydirs": {emptydirs|json}
45 }'
45 }'
46 fileentry = '\{
46 fileentry = '\{
47 "abspath": {file|json},
47 "abspath": {file|json},
48 "basename": {basename|json},
48 "basename": {basename|json},
49 "date": {date|json},
49 "date": {date|json},
50 "size": {size|json},
50 "size": {size|json},
51 "flags": {permissions|json}
51 "flags": {permissions|json}
52 }'
52 }'
53 tags = '\{
53 tags = '\{
54 "node": {node|json},
54 "node": {node|json},
55 "tags": [{join(entriesnotip%tagentry, ", ")}]
55 "tags": [{join(entriesnotip%tagentry, ", ")}]
56 }'
56 }'
57 tagentry = '\{
57 tagentry = '\{
58 "tag": {tag|utf8|json},
58 "tag": {tag|utf8|json},
59 "node": {node|json},
59 "node": {node|json},
60 "date": {date|json}
60 "date": {date|json}
61 }'
61 }'
62 bookmarks = '\{
62 bookmarks = '\{
63 "node": {node|json},
63 "node": {node|json},
64 "bookmarks": [{join(entries%bookmarkentry, ", ")}]
64 "bookmarks": [{join(entries%bookmarkentry, ", ")}]
65 }'
65 }'
66 bookmarkentry = '\{
66 bookmarkentry = '\{
67 "bookmark": {bookmark|utf8|json},
67 "bookmark": {bookmark|utf8|json},
68 "node": {node|json},
68 "node": {node|json},
69 "date": {date|json}
69 "date": {date|json}
70 }'
70 }'
71 branches = '\{
71 branches = '\{
72 "branches": [{join(entries%branchentry, ", ")}]
72 "branches": [{join(entries%branchentry, ", ")}]
73 }'
73 }'
74 branchentry = '\{
74 branchentry = '\{
75 "branch": {branch|utf8|json},
75 "branch": {branch|utf8|json},
76 "node": {node|json},
76 "node": {node|json},
77 "date": {date|json},
77 "date": {date|json},
78 "status": {status|json}
78 "status": {status|json}
79 }'
79 }'
80 summary = '"not yet implemented"'
80 summary = '"not yet implemented"'
81 filediff = '\{
81 filediff = '\{
82 "path": {file|json},
82 "path": {file|json},
83 "node": {node|json},
83 "node": {node|json},
84 "date": {date|json},
84 "date": {date|json},
85 "desc": {desc|utf8|json},
85 "desc": {desc|utf8|json},
86 "author": {author|utf8|json},
86 "author": {author|utf8|json},
87 "parents": [{join(parent%changesetparent, ", ")}],
87 "parents": [{join(parent%changesetparent, ", ")}],
88 "children": [{join(child%changesetparent, ", ")}],
88 "children": [{join(child%changesetparent, ", ")}],
89 "diff": [{join(diff%diffblock, ", ")}]
89 "diff": [{join(diff%diffblock, ", ")}]
90 }'
90 }'
91 diffblock = '\{
91 diffblock = '\{
92 "blockno": {blockno|json},
92 "blockno": {blockno|json},
93 "lines": [{join(lines, ", ")}]
93 "lines": [{join(lines, ", ")}]
94 }'
94 }'
95 difflineplus = '\{
95 difflineplus = '\{
96 "t": "+",
96 "t": "+",
97 "n": {lineno|json},
97 "n": {lineno|json},
98 "l": {line|json}
98 "l": {line|json}
99 }'
99 }'
100 difflineminus = '\{
100 difflineminus = '\{
101 "t": "-",
101 "t": "-",
102 "n": {lineno|json},
102 "n": {lineno|json},
103 "l": {line|json}
103 "l": {line|json}
104 }'
104 }'
105 difflineat = '\{
105 difflineat = '\{
106 "t": "@",
106 "t": "@",
107 "n": {lineno|json},
107 "n": {lineno|json},
108 "l": {line|json}
108 "l": {line|json}
109 }'
109 }'
110 diffline = '\{
110 diffline = '\{
111 "t": "",
111 "t": "",
112 "n": {lineno|json},
112 "n": {lineno|json},
113 "l": {line|json}
113 "l": {line|json}
114 }'
114 }'
115 filecomparison = '\{
115 filecomparison = '\{
116 "path": {file|json},
116 "path": {file|json},
117 "node": {node|json},
117 "node": {node|json},
118 "date": {date|json},
118 "date": {date|json},
119 "desc": {desc|utf8|json},
119 "desc": {desc|utf8|json},
120 "author": {author|utf8|json},
120 "author": {author|utf8|json},
121 "parents": [{join(parent%changesetparent, ", ")}],
121 "parents": [{join(parent%changesetparent, ", ")}],
122 "children": [{join(child%changesetparent, ", ")}],
122 "children": [{join(child%changesetparent, ", ")}],
123 "leftnode": {leftnode|json},
123 "leftnode": {leftnode|json},
124 "rightnode": {rightnode|json},
124 "rightnode": {rightnode|json},
125 "comparison": [{join(comparison, ", ")}]
125 "comparison": [{join(comparison, ", ")}]
126 }'
126 }'
127 comparisonblock = '\{
127 comparisonblock = '\{
128 "lines": [{join(lines, ", ")}]
128 "lines": [{join(lines, ", ")}]
129 }'
129 }'
130 comparisonline = '\{
130 comparisonline = '\{
131 "t": {type|json},
131 "t": {type|json},
132 "ln": {leftlineno|json},
132 "ln": {leftlineno|json},
133 "ll": {leftline|json},
133 "ll": {leftline|json},
134 "rn": {rightlineno|json},
134 "rn": {rightlineno|json},
135 "rl": {rightline|json}
135 "rl": {rightline|json}
136 }'
136 }'
137 fileannotate = '\{
137 fileannotate = '\{
138 "abspath": {file|json},
138 "abspath": {file|json},
139 "node": {node|json},
139 "node": {node|json},
140 "author": {author|utf8|json},
140 "author": {author|utf8|json},
141 "date": {date|json},
141 "date": {date|json},
142 "desc": {desc|utf8|json},
142 "desc": {desc|utf8|json},
143 "parents": [{join(parent%changesetparent, ", ")}],
143 "parents": [{join(parent%changesetparent, ", ")}],
144 "children": [{join(child%changesetparent, ", ")}],
144 "children": [{join(child%changesetparent, ", ")}],
145 "permissions": {permissions|json},
145 "permissions": {permissions|json},
146 "annotate": [{join(annotate%fileannotation, ", ")}]
146 "annotate": [{join(annotate%fileannotation, ", ")}]
147 }'
147 }'
148 fileannotation = '\{
148 fileannotation = '\{
149 "node": {node|json},
149 "node": {node|json},
150 "author": {author|utf8|json},
150 "author": {author|utf8|json},
151 "desc": {desc|utf8|json},
151 "desc": {desc|utf8|json},
152 "abspath": {file|json},
152 "abspath": {file|json},
153 "targetline": {targetline|json},
153 "targetline": {targetline|json},
154 "line": {line|json},
154 "line": {line|json},
155 "lineno": {lineno|json},
155 "lineno": {lineno|json},
156 "revdate": {revdate|json}
156 "revdate": {revdate|json}
157 }'
157 }'
158 filelog = '"not yet implemented"'
158 filelog = '"not yet implemented"'
159 graph = '"not yet implemented"'
159 graph = '"not yet implemented"'
160 helptopics = '\{
160 helptopics = '\{
161 "topics": [{join(topics%helptopicentry, ", ")}],
161 "topics": [{join(topics%helptopicentry, ", ")}],
162 "earlycommands": [{join(earlycommands%helptopicentry, ", ")}],
162 "earlycommands": [{join(earlycommands%helptopicentry, ", ")}],
163 "othercommands": [{join(othercommands%helptopicentry, ", ")}]
163 "othercommands": [{join(othercommands%helptopicentry, ", ")}]
164 }'
164 }'
165 helptopicentry = '\{
165 helptopicentry = '\{
166 "topic": {topic|utf8|json},
166 "topic": {topic|utf8|json},
167 "summary": {summary|utf8|json}
167 "summary": {summary|utf8|json}
168 }'
168 }'
169 help = '\{
169 help = '\{
170 "topic": {topic|utf8|json},
170 "topic": {topic|utf8|json},
171 "rawdoc": {doc|utf8|json}
171 "rawdoc": {doc|utf8|json}
172 }'
172 }'
173 filenodelink = ''
173 filenodelink = ''
174 filenolink = ''
174 filenolink = ''
175 index = '\{
176 "entries": [{join(entries%indexentry, ", ")}]
177 }'
178 indexentry = '\{
179 "name": {name|utf8|json},
180 "description": {description|utf8|json},
181 "contact": {contact|utf8|json},
182 "lastchange": {lastchange|json}
183 }'
@@ -1,1387 +1,1404 b''
1 #require serve
1 #require serve
2
2
3 hide outer repo and work in dir without '.hg'
3 hide outer repo and work in dir without '.hg'
4 $ hg init
4 $ hg init
5 $ mkdir dir
5 $ mkdir dir
6 $ cd dir
6 $ cd dir
7
7
8 Tests some basic hgwebdir functionality. Tests setting up paths and
8 Tests some basic hgwebdir functionality. Tests setting up paths and
9 collection, different forms of 404s and the subdirectory support.
9 collection, different forms of 404s and the subdirectory support.
10
10
11 $ mkdir webdir
11 $ mkdir webdir
12 $ cd webdir
12 $ cd webdir
13 $ hg init a
13 $ hg init a
14 $ echo a > a/a
14 $ echo a > a/a
15 $ hg --cwd a ci -Ama -d'1 0'
15 $ hg --cwd a ci -Ama -d'1 0'
16 adding a
16 adding a
17
17
18 create a mercurial queue repository
18 create a mercurial queue repository
19
19
20 $ hg --cwd a qinit --config extensions.hgext.mq= -c
20 $ hg --cwd a qinit --config extensions.hgext.mq= -c
21 $ hg init b
21 $ hg init b
22 $ echo b > b/b
22 $ echo b > b/b
23 $ hg --cwd b ci -Amb -d'2 0'
23 $ hg --cwd b ci -Amb -d'2 0'
24 adding b
24 adding b
25
25
26 create a nested repository
26 create a nested repository
27
27
28 $ cd b
28 $ cd b
29 $ hg init d
29 $ hg init d
30 $ echo d > d/d
30 $ echo d > d/d
31 $ hg --cwd d ci -Amd -d'3 0'
31 $ hg --cwd d ci -Amd -d'3 0'
32 adding d
32 adding d
33 $ cd ..
33 $ cd ..
34 $ hg init c
34 $ hg init c
35 $ echo c > c/c
35 $ echo c > c/c
36 $ hg --cwd c ci -Amc -d'3 0'
36 $ hg --cwd c ci -Amc -d'3 0'
37 adding c
37 adding c
38
38
39 create a subdirectory containing repositories and subrepositories
39 create a subdirectory containing repositories and subrepositories
40
40
41 $ mkdir notrepo
41 $ mkdir notrepo
42 $ cd notrepo
42 $ cd notrepo
43 $ hg init e
43 $ hg init e
44 $ echo e > e/e
44 $ echo e > e/e
45 $ hg --cwd e ci -Ame -d'4 0'
45 $ hg --cwd e ci -Ame -d'4 0'
46 adding e
46 adding e
47 $ hg init e/e2
47 $ hg init e/e2
48 $ echo e2 > e/e2/e2
48 $ echo e2 > e/e2/e2
49 $ hg --cwd e/e2 ci -Ame2 -d '4 0'
49 $ hg --cwd e/e2 ci -Ame2 -d '4 0'
50 adding e2
50 adding e2
51 $ hg init f
51 $ hg init f
52 $ echo f > f/f
52 $ echo f > f/f
53 $ hg --cwd f ci -Amf -d'4 0'
53 $ hg --cwd f ci -Amf -d'4 0'
54 adding f
54 adding f
55 $ hg init f/f2
55 $ hg init f/f2
56 $ echo f2 > f/f2/f2
56 $ echo f2 > f/f2/f2
57 $ hg --cwd f/f2 ci -Amf2 -d '4 0'
57 $ hg --cwd f/f2 ci -Amf2 -d '4 0'
58 adding f2
58 adding f2
59 $ echo 'f2 = f2' > f/.hgsub
59 $ echo 'f2 = f2' > f/.hgsub
60 $ hg -R f ci -Am 'add subrepo' -d'4 0'
60 $ hg -R f ci -Am 'add subrepo' -d'4 0'
61 adding .hgsub
61 adding .hgsub
62 $ cat >> f/.hg/hgrc << EOF
62 $ cat >> f/.hg/hgrc << EOF
63 > [web]
63 > [web]
64 > name = fancy name for repo f
64 > name = fancy name for repo f
65 > EOF
65 > EOF
66 $ cd ..
66 $ cd ..
67
67
68 create repository without .hg/store
68 create repository without .hg/store
69
69
70 $ hg init nostore
70 $ hg init nostore
71 $ rm -R nostore/.hg/store
71 $ rm -R nostore/.hg/store
72 $ root=`pwd`
72 $ root=`pwd`
73 $ cd ..
73 $ cd ..
74
74
75 serve
75 serve
76 $ cat > paths.conf <<EOF
76 $ cat > paths.conf <<EOF
77 > [paths]
77 > [paths]
78 > a=$root/a
78 > a=$root/a
79 > b=$root/b
79 > b=$root/b
80 > EOF
80 > EOF
81 $ hg serve -p $HGPORT -d --pid-file=hg.pid --webdir-conf paths.conf \
81 $ hg serve -p $HGPORT -d --pid-file=hg.pid --webdir-conf paths.conf \
82 > -A access-paths.log -E error-paths-1.log
82 > -A access-paths.log -E error-paths-1.log
83 $ cat hg.pid >> $DAEMON_PIDS
83 $ cat hg.pid >> $DAEMON_PIDS
84
84
85 should give a 404 - file does not exist
85 should give a 404 - file does not exist
86
86
87 $ get-with-headers.py localhost:$HGPORT 'a/file/tip/bork?style=raw'
87 $ get-with-headers.py localhost:$HGPORT 'a/file/tip/bork?style=raw'
88 404 Not Found
88 404 Not Found
89
89
90
90
91 error: bork@8580ff50825a: not found in manifest
91 error: bork@8580ff50825a: not found in manifest
92 [1]
92 [1]
93
93
94 should succeed
94 should succeed
95
95
96 $ get-with-headers.py localhost:$HGPORT '?style=raw'
96 $ get-with-headers.py localhost:$HGPORT '?style=raw'
97 200 Script output follows
97 200 Script output follows
98
98
99
99
100 /a/
100 /a/
101 /b/
101 /b/
102
102
103 $ get-with-headers.py localhost:$HGPORT '?style=json'
104 200 Script output follows
105
106 {
107 "entries": [{
108 "name": "a",
109 "description": "unknown",
110 "contact": "Foo Bar \u003cfoo.bar@example.com\u003e",
111 "lastchange": [*, *] (glob)
112 }, {
113 "name": "b",
114 "description": "unknown",
115 "contact": "Foo Bar \u003cfoo.bar@example.com\u003e",
116 "lastchange": [*, *] (glob)
117 }]
118 } (no-eol)
119
103 $ get-with-headers.py localhost:$HGPORT 'a/file/tip/a?style=raw'
120 $ get-with-headers.py localhost:$HGPORT 'a/file/tip/a?style=raw'
104 200 Script output follows
121 200 Script output follows
105
122
106 a
123 a
107 $ get-with-headers.py localhost:$HGPORT 'b/file/tip/b?style=raw'
124 $ get-with-headers.py localhost:$HGPORT 'b/file/tip/b?style=raw'
108 200 Script output follows
125 200 Script output follows
109
126
110 b
127 b
111
128
112 should give a 404 - repo is not published
129 should give a 404 - repo is not published
113
130
114 $ get-with-headers.py localhost:$HGPORT 'c/file/tip/c?style=raw'
131 $ get-with-headers.py localhost:$HGPORT 'c/file/tip/c?style=raw'
115 404 Not Found
132 404 Not Found
116
133
117
134
118 error: repository c/file/tip/c not found
135 error: repository c/file/tip/c not found
119 [1]
136 [1]
120
137
121 atom-log without basedir
138 atom-log without basedir
122
139
123 $ get-with-headers.py localhost:$HGPORT 'a/atom-log' | grep '<link'
140 $ get-with-headers.py localhost:$HGPORT 'a/atom-log' | grep '<link'
124 <link rel="self" href="http://*:$HGPORT/a/atom-log"/> (glob)
141 <link rel="self" href="http://*:$HGPORT/a/atom-log"/> (glob)
125 <link rel="alternate" href="http://*:$HGPORT/a/"/> (glob)
142 <link rel="alternate" href="http://*:$HGPORT/a/"/> (glob)
126 <link href="http://*:$HGPORT/a/rev/8580ff50825a"/> (glob)
143 <link href="http://*:$HGPORT/a/rev/8580ff50825a"/> (glob)
127
144
128 rss-log without basedir
145 rss-log without basedir
129
146
130 $ get-with-headers.py localhost:$HGPORT 'a/rss-log' | grep '<guid'
147 $ get-with-headers.py localhost:$HGPORT 'a/rss-log' | grep '<guid'
131 <guid isPermaLink="true">http://*:$HGPORT/a/rev/8580ff50825a</guid> (glob)
148 <guid isPermaLink="true">http://*:$HGPORT/a/rev/8580ff50825a</guid> (glob)
132 $ cat > paths.conf <<EOF
149 $ cat > paths.conf <<EOF
133 > [paths]
150 > [paths]
134 > t/a/=$root/a
151 > t/a/=$root/a
135 > b=$root/b
152 > b=$root/b
136 > coll=$root/*
153 > coll=$root/*
137 > rcoll=$root/**
154 > rcoll=$root/**
138 > star=*
155 > star=*
139 > starstar=**
156 > starstar=**
140 > astar=webdir/a/*
157 > astar=webdir/a/*
141 > EOF
158 > EOF
142 $ hg serve -p $HGPORT1 -d --pid-file=hg.pid --webdir-conf paths.conf \
159 $ hg serve -p $HGPORT1 -d --pid-file=hg.pid --webdir-conf paths.conf \
143 > -A access-paths.log -E error-paths-2.log
160 > -A access-paths.log -E error-paths-2.log
144 $ cat hg.pid >> $DAEMON_PIDS
161 $ cat hg.pid >> $DAEMON_PIDS
145
162
146 should succeed, slashy names
163 should succeed, slashy names
147
164
148 $ get-with-headers.py localhost:$HGPORT1 '?style=raw'
165 $ get-with-headers.py localhost:$HGPORT1 '?style=raw'
149 200 Script output follows
166 200 Script output follows
150
167
151
168
152 /t/a/
169 /t/a/
153 /b/
170 /b/
154 /coll/a/
171 /coll/a/
155 /coll/a/.hg/patches/
172 /coll/a/.hg/patches/
156 /coll/b/
173 /coll/b/
157 /coll/c/
174 /coll/c/
158 /coll/notrepo/e/
175 /coll/notrepo/e/
159 /coll/notrepo/f/
176 /coll/notrepo/f/
160 /rcoll/a/
177 /rcoll/a/
161 /rcoll/a/.hg/patches/
178 /rcoll/a/.hg/patches/
162 /rcoll/b/
179 /rcoll/b/
163 /rcoll/b/d/
180 /rcoll/b/d/
164 /rcoll/c/
181 /rcoll/c/
165 /rcoll/notrepo/e/
182 /rcoll/notrepo/e/
166 /rcoll/notrepo/e/e2/
183 /rcoll/notrepo/e/e2/
167 /rcoll/notrepo/f/
184 /rcoll/notrepo/f/
168 /rcoll/notrepo/f/f2/
185 /rcoll/notrepo/f/f2/
169 /star/webdir/a/
186 /star/webdir/a/
170 /star/webdir/a/.hg/patches/
187 /star/webdir/a/.hg/patches/
171 /star/webdir/b/
188 /star/webdir/b/
172 /star/webdir/c/
189 /star/webdir/c/
173 /star/webdir/notrepo/e/
190 /star/webdir/notrepo/e/
174 /star/webdir/notrepo/f/
191 /star/webdir/notrepo/f/
175 /starstar/webdir/a/
192 /starstar/webdir/a/
176 /starstar/webdir/a/.hg/patches/
193 /starstar/webdir/a/.hg/patches/
177 /starstar/webdir/b/
194 /starstar/webdir/b/
178 /starstar/webdir/b/d/
195 /starstar/webdir/b/d/
179 /starstar/webdir/c/
196 /starstar/webdir/c/
180 /starstar/webdir/notrepo/e/
197 /starstar/webdir/notrepo/e/
181 /starstar/webdir/notrepo/e/e2/
198 /starstar/webdir/notrepo/e/e2/
182 /starstar/webdir/notrepo/f/
199 /starstar/webdir/notrepo/f/
183 /starstar/webdir/notrepo/f/f2/
200 /starstar/webdir/notrepo/f/f2/
184 /astar/
201 /astar/
185 /astar/.hg/patches/
202 /astar/.hg/patches/
186
203
187 $ get-with-headers.py localhost:$HGPORT1 '?style=paper'
204 $ get-with-headers.py localhost:$HGPORT1 '?style=paper'
188 200 Script output follows
205 200 Script output follows
189
206
190 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
207 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
191 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US">
208 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US">
192 <head>
209 <head>
193 <link rel="icon" href="/static/hgicon.png" type="image/png" />
210 <link rel="icon" href="/static/hgicon.png" type="image/png" />
194 <meta name="robots" content="index, nofollow" />
211 <meta name="robots" content="index, nofollow" />
195 <link rel="stylesheet" href="/static/style-paper.css" type="text/css" />
212 <link rel="stylesheet" href="/static/style-paper.css" type="text/css" />
196 <script type="text/javascript" src="/static/mercurial.js"></script>
213 <script type="text/javascript" src="/static/mercurial.js"></script>
197
214
198 <title>Mercurial repositories index</title>
215 <title>Mercurial repositories index</title>
199 </head>
216 </head>
200 <body>
217 <body>
201
218
202 <div class="container">
219 <div class="container">
203 <div class="menu">
220 <div class="menu">
204 <a href="https://mercurial-scm.org/">
221 <a href="https://mercurial-scm.org/">
205 <img src="/static/hglogo.png" width=75 height=90 border=0 alt="mercurial" /></a>
222 <img src="/static/hglogo.png" width=75 height=90 border=0 alt="mercurial" /></a>
206 </div>
223 </div>
207 <div class="main">
224 <div class="main">
208 <h2 class="breadcrumb"><a href="/">Mercurial</a> </h2>
225 <h2 class="breadcrumb"><a href="/">Mercurial</a> </h2>
209
226
210 <table class="bigtable">
227 <table class="bigtable">
211 <thead>
228 <thead>
212 <tr>
229 <tr>
213 <th><a href="?sort=name">Name</a></th>
230 <th><a href="?sort=name">Name</a></th>
214 <th><a href="?sort=description">Description</a></th>
231 <th><a href="?sort=description">Description</a></th>
215 <th><a href="?sort=contact">Contact</a></th>
232 <th><a href="?sort=contact">Contact</a></th>
216 <th><a href="?sort=lastchange">Last modified</a></th>
233 <th><a href="?sort=lastchange">Last modified</a></th>
217 <th>&nbsp;</th>
234 <th>&nbsp;</th>
218 <th>&nbsp;</th>
235 <th>&nbsp;</th>
219 </tr>
236 </tr>
220 </thead>
237 </thead>
221 <tbody class="stripes2">
238 <tbody class="stripes2">
222
239
223 <tr>
240 <tr>
224 <td><a href="/t/a/?style=paper">t/a</a></td>
241 <td><a href="/t/a/?style=paper">t/a</a></td>
225 <td>unknown</td>
242 <td>unknown</td>
226 <td>&#70;&#111;&#111;&#32;&#66;&#97;&#114;&#32;&#60;&#102;&#111;&#111;&#46;&#98;&#97;&#114;&#64;&#101;&#120;&#97;&#109;&#112;&#108;&#101;&#46;&#99;&#111;&#109;&#62;</td>
243 <td>&#70;&#111;&#111;&#32;&#66;&#97;&#114;&#32;&#60;&#102;&#111;&#111;&#46;&#98;&#97;&#114;&#64;&#101;&#120;&#97;&#109;&#112;&#108;&#101;&#46;&#99;&#111;&#109;&#62;</td>
227 <td class="age">*</td> (glob)
244 <td class="age">*</td> (glob)
228 <td class="indexlinks"></td>
245 <td class="indexlinks"></td>
229 <td>
246 <td>
230 <a href="/t/a/atom-log" title="subscribe to repository atom feed">
247 <a href="/t/a/atom-log" title="subscribe to repository atom feed">
231 <img class="atom-logo" src="/static/feed-icon-14x14.png" alt="subscribe to repository atom feed">
248 <img class="atom-logo" src="/static/feed-icon-14x14.png" alt="subscribe to repository atom feed">
232 </a>
249 </a>
233 </td>
250 </td>
234 </tr>
251 </tr>
235
252
236 <tr>
253 <tr>
237 <td><a href="/b/?style=paper">b</a></td>
254 <td><a href="/b/?style=paper">b</a></td>
238 <td>unknown</td>
255 <td>unknown</td>
239 <td>&#70;&#111;&#111;&#32;&#66;&#97;&#114;&#32;&#60;&#102;&#111;&#111;&#46;&#98;&#97;&#114;&#64;&#101;&#120;&#97;&#109;&#112;&#108;&#101;&#46;&#99;&#111;&#109;&#62;</td>
256 <td>&#70;&#111;&#111;&#32;&#66;&#97;&#114;&#32;&#60;&#102;&#111;&#111;&#46;&#98;&#97;&#114;&#64;&#101;&#120;&#97;&#109;&#112;&#108;&#101;&#46;&#99;&#111;&#109;&#62;</td>
240 <td class="age">*</td> (glob)
257 <td class="age">*</td> (glob)
241 <td class="indexlinks"></td>
258 <td class="indexlinks"></td>
242 <td>
259 <td>
243 <a href="/b/atom-log" title="subscribe to repository atom feed">
260 <a href="/b/atom-log" title="subscribe to repository atom feed">
244 <img class="atom-logo" src="/static/feed-icon-14x14.png" alt="subscribe to repository atom feed">
261 <img class="atom-logo" src="/static/feed-icon-14x14.png" alt="subscribe to repository atom feed">
245 </a>
262 </a>
246 </td>
263 </td>
247 </tr>
264 </tr>
248
265
249 <tr>
266 <tr>
250 <td><a href="/coll/a/?style=paper">coll/a</a></td>
267 <td><a href="/coll/a/?style=paper">coll/a</a></td>
251 <td>unknown</td>
268 <td>unknown</td>
252 <td>&#70;&#111;&#111;&#32;&#66;&#97;&#114;&#32;&#60;&#102;&#111;&#111;&#46;&#98;&#97;&#114;&#64;&#101;&#120;&#97;&#109;&#112;&#108;&#101;&#46;&#99;&#111;&#109;&#62;</td>
269 <td>&#70;&#111;&#111;&#32;&#66;&#97;&#114;&#32;&#60;&#102;&#111;&#111;&#46;&#98;&#97;&#114;&#64;&#101;&#120;&#97;&#109;&#112;&#108;&#101;&#46;&#99;&#111;&#109;&#62;</td>
253 <td class="age">*</td> (glob)
270 <td class="age">*</td> (glob)
254 <td class="indexlinks"></td>
271 <td class="indexlinks"></td>
255 <td>
272 <td>
256 <a href="/coll/a/atom-log" title="subscribe to repository atom feed">
273 <a href="/coll/a/atom-log" title="subscribe to repository atom feed">
257 <img class="atom-logo" src="/static/feed-icon-14x14.png" alt="subscribe to repository atom feed">
274 <img class="atom-logo" src="/static/feed-icon-14x14.png" alt="subscribe to repository atom feed">
258 </a>
275 </a>
259 </td>
276 </td>
260 </tr>
277 </tr>
261
278
262 <tr>
279 <tr>
263 <td><a href="/coll/a/.hg/patches/?style=paper">coll/a/.hg/patches</a></td>
280 <td><a href="/coll/a/.hg/patches/?style=paper">coll/a/.hg/patches</a></td>
264 <td>unknown</td>
281 <td>unknown</td>
265 <td>&#70;&#111;&#111;&#32;&#66;&#97;&#114;&#32;&#60;&#102;&#111;&#111;&#46;&#98;&#97;&#114;&#64;&#101;&#120;&#97;&#109;&#112;&#108;&#101;&#46;&#99;&#111;&#109;&#62;</td>
282 <td>&#70;&#111;&#111;&#32;&#66;&#97;&#114;&#32;&#60;&#102;&#111;&#111;&#46;&#98;&#97;&#114;&#64;&#101;&#120;&#97;&#109;&#112;&#108;&#101;&#46;&#99;&#111;&#109;&#62;</td>
266 <td class="age">*</td> (glob)
283 <td class="age">*</td> (glob)
267 <td class="indexlinks"></td>
284 <td class="indexlinks"></td>
268 <td>
285 <td>
269 <a href="/coll/a/.hg/patches/atom-log" title="subscribe to repository atom feed">
286 <a href="/coll/a/.hg/patches/atom-log" title="subscribe to repository atom feed">
270 <img class="atom-logo" src="/static/feed-icon-14x14.png" alt="subscribe to repository atom feed">
287 <img class="atom-logo" src="/static/feed-icon-14x14.png" alt="subscribe to repository atom feed">
271 </a>
288 </a>
272 </td>
289 </td>
273 </tr>
290 </tr>
274
291
275 <tr>
292 <tr>
276 <td><a href="/coll/b/?style=paper">coll/b</a></td>
293 <td><a href="/coll/b/?style=paper">coll/b</a></td>
277 <td>unknown</td>
294 <td>unknown</td>
278 <td>&#70;&#111;&#111;&#32;&#66;&#97;&#114;&#32;&#60;&#102;&#111;&#111;&#46;&#98;&#97;&#114;&#64;&#101;&#120;&#97;&#109;&#112;&#108;&#101;&#46;&#99;&#111;&#109;&#62;</td>
295 <td>&#70;&#111;&#111;&#32;&#66;&#97;&#114;&#32;&#60;&#102;&#111;&#111;&#46;&#98;&#97;&#114;&#64;&#101;&#120;&#97;&#109;&#112;&#108;&#101;&#46;&#99;&#111;&#109;&#62;</td>
279 <td class="age">*</td> (glob)
296 <td class="age">*</td> (glob)
280 <td class="indexlinks"></td>
297 <td class="indexlinks"></td>
281 <td>
298 <td>
282 <a href="/coll/b/atom-log" title="subscribe to repository atom feed">
299 <a href="/coll/b/atom-log" title="subscribe to repository atom feed">
283 <img class="atom-logo" src="/static/feed-icon-14x14.png" alt="subscribe to repository atom feed">
300 <img class="atom-logo" src="/static/feed-icon-14x14.png" alt="subscribe to repository atom feed">
284 </a>
301 </a>
285 </td>
302 </td>
286 </tr>
303 </tr>
287
304
288 <tr>
305 <tr>
289 <td><a href="/coll/c/?style=paper">coll/c</a></td>
306 <td><a href="/coll/c/?style=paper">coll/c</a></td>
290 <td>unknown</td>
307 <td>unknown</td>
291 <td>&#70;&#111;&#111;&#32;&#66;&#97;&#114;&#32;&#60;&#102;&#111;&#111;&#46;&#98;&#97;&#114;&#64;&#101;&#120;&#97;&#109;&#112;&#108;&#101;&#46;&#99;&#111;&#109;&#62;</td>
308 <td>&#70;&#111;&#111;&#32;&#66;&#97;&#114;&#32;&#60;&#102;&#111;&#111;&#46;&#98;&#97;&#114;&#64;&#101;&#120;&#97;&#109;&#112;&#108;&#101;&#46;&#99;&#111;&#109;&#62;</td>
292 <td class="age">*</td> (glob)
309 <td class="age">*</td> (glob)
293 <td class="indexlinks"></td>
310 <td class="indexlinks"></td>
294 <td>
311 <td>
295 <a href="/coll/c/atom-log" title="subscribe to repository atom feed">
312 <a href="/coll/c/atom-log" title="subscribe to repository atom feed">
296 <img class="atom-logo" src="/static/feed-icon-14x14.png" alt="subscribe to repository atom feed">
313 <img class="atom-logo" src="/static/feed-icon-14x14.png" alt="subscribe to repository atom feed">
297 </a>
314 </a>
298 </td>
315 </td>
299 </tr>
316 </tr>
300
317
301 <tr>
318 <tr>
302 <td><a href="/coll/notrepo/e/?style=paper">coll/notrepo/e</a></td>
319 <td><a href="/coll/notrepo/e/?style=paper">coll/notrepo/e</a></td>
303 <td>unknown</td>
320 <td>unknown</td>
304 <td>&#70;&#111;&#111;&#32;&#66;&#97;&#114;&#32;&#60;&#102;&#111;&#111;&#46;&#98;&#97;&#114;&#64;&#101;&#120;&#97;&#109;&#112;&#108;&#101;&#46;&#99;&#111;&#109;&#62;</td>
321 <td>&#70;&#111;&#111;&#32;&#66;&#97;&#114;&#32;&#60;&#102;&#111;&#111;&#46;&#98;&#97;&#114;&#64;&#101;&#120;&#97;&#109;&#112;&#108;&#101;&#46;&#99;&#111;&#109;&#62;</td>
305 <td class="age">*</td> (glob)
322 <td class="age">*</td> (glob)
306 <td class="indexlinks"></td>
323 <td class="indexlinks"></td>
307 <td>
324 <td>
308 <a href="/coll/notrepo/e/atom-log" title="subscribe to repository atom feed">
325 <a href="/coll/notrepo/e/atom-log" title="subscribe to repository atom feed">
309 <img class="atom-logo" src="/static/feed-icon-14x14.png" alt="subscribe to repository atom feed">
326 <img class="atom-logo" src="/static/feed-icon-14x14.png" alt="subscribe to repository atom feed">
310 </a>
327 </a>
311 </td>
328 </td>
312 </tr>
329 </tr>
313
330
314 <tr>
331 <tr>
315 <td><a href="/coll/notrepo/f/?style=paper">fancy name for repo f</a></td>
332 <td><a href="/coll/notrepo/f/?style=paper">fancy name for repo f</a></td>
316 <td>unknown</td>
333 <td>unknown</td>
317 <td>&#70;&#111;&#111;&#32;&#66;&#97;&#114;&#32;&#60;&#102;&#111;&#111;&#46;&#98;&#97;&#114;&#64;&#101;&#120;&#97;&#109;&#112;&#108;&#101;&#46;&#99;&#111;&#109;&#62;</td>
334 <td>&#70;&#111;&#111;&#32;&#66;&#97;&#114;&#32;&#60;&#102;&#111;&#111;&#46;&#98;&#97;&#114;&#64;&#101;&#120;&#97;&#109;&#112;&#108;&#101;&#46;&#99;&#111;&#109;&#62;</td>
318 <td class="age">*</td> (glob)
335 <td class="age">*</td> (glob)
319 <td class="indexlinks"></td>
336 <td class="indexlinks"></td>
320 <td>
337 <td>
321 <a href="/coll/notrepo/f/atom-log" title="subscribe to repository atom feed">
338 <a href="/coll/notrepo/f/atom-log" title="subscribe to repository atom feed">
322 <img class="atom-logo" src="/static/feed-icon-14x14.png" alt="subscribe to repository atom feed">
339 <img class="atom-logo" src="/static/feed-icon-14x14.png" alt="subscribe to repository atom feed">
323 </a>
340 </a>
324 </td>
341 </td>
325 </tr>
342 </tr>
326
343
327 <tr>
344 <tr>
328 <td><a href="/rcoll/a/?style=paper">rcoll/a</a></td>
345 <td><a href="/rcoll/a/?style=paper">rcoll/a</a></td>
329 <td>unknown</td>
346 <td>unknown</td>
330 <td>&#70;&#111;&#111;&#32;&#66;&#97;&#114;&#32;&#60;&#102;&#111;&#111;&#46;&#98;&#97;&#114;&#64;&#101;&#120;&#97;&#109;&#112;&#108;&#101;&#46;&#99;&#111;&#109;&#62;</td>
347 <td>&#70;&#111;&#111;&#32;&#66;&#97;&#114;&#32;&#60;&#102;&#111;&#111;&#46;&#98;&#97;&#114;&#64;&#101;&#120;&#97;&#109;&#112;&#108;&#101;&#46;&#99;&#111;&#109;&#62;</td>
331 <td class="age">*</td> (glob)
348 <td class="age">*</td> (glob)
332 <td class="indexlinks"></td>
349 <td class="indexlinks"></td>
333 <td>
350 <td>
334 <a href="/rcoll/a/atom-log" title="subscribe to repository atom feed">
351 <a href="/rcoll/a/atom-log" title="subscribe to repository atom feed">
335 <img class="atom-logo" src="/static/feed-icon-14x14.png" alt="subscribe to repository atom feed">
352 <img class="atom-logo" src="/static/feed-icon-14x14.png" alt="subscribe to repository atom feed">
336 </a>
353 </a>
337 </td>
354 </td>
338 </tr>
355 </tr>
339
356
340 <tr>
357 <tr>
341 <td><a href="/rcoll/a/.hg/patches/?style=paper">rcoll/a/.hg/patches</a></td>
358 <td><a href="/rcoll/a/.hg/patches/?style=paper">rcoll/a/.hg/patches</a></td>
342 <td>unknown</td>
359 <td>unknown</td>
343 <td>&#70;&#111;&#111;&#32;&#66;&#97;&#114;&#32;&#60;&#102;&#111;&#111;&#46;&#98;&#97;&#114;&#64;&#101;&#120;&#97;&#109;&#112;&#108;&#101;&#46;&#99;&#111;&#109;&#62;</td>
360 <td>&#70;&#111;&#111;&#32;&#66;&#97;&#114;&#32;&#60;&#102;&#111;&#111;&#46;&#98;&#97;&#114;&#64;&#101;&#120;&#97;&#109;&#112;&#108;&#101;&#46;&#99;&#111;&#109;&#62;</td>
344 <td class="age">*</td> (glob)
361 <td class="age">*</td> (glob)
345 <td class="indexlinks"></td>
362 <td class="indexlinks"></td>
346 <td>
363 <td>
347 <a href="/rcoll/a/.hg/patches/atom-log" title="subscribe to repository atom feed">
364 <a href="/rcoll/a/.hg/patches/atom-log" title="subscribe to repository atom feed">
348 <img class="atom-logo" src="/static/feed-icon-14x14.png" alt="subscribe to repository atom feed">
365 <img class="atom-logo" src="/static/feed-icon-14x14.png" alt="subscribe to repository atom feed">
349 </a>
366 </a>
350 </td>
367 </td>
351 </tr>
368 </tr>
352
369
353 <tr>
370 <tr>
354 <td><a href="/rcoll/b/?style=paper">rcoll/b</a></td>
371 <td><a href="/rcoll/b/?style=paper">rcoll/b</a></td>
355 <td>unknown</td>
372 <td>unknown</td>
356 <td>&#70;&#111;&#111;&#32;&#66;&#97;&#114;&#32;&#60;&#102;&#111;&#111;&#46;&#98;&#97;&#114;&#64;&#101;&#120;&#97;&#109;&#112;&#108;&#101;&#46;&#99;&#111;&#109;&#62;</td>
373 <td>&#70;&#111;&#111;&#32;&#66;&#97;&#114;&#32;&#60;&#102;&#111;&#111;&#46;&#98;&#97;&#114;&#64;&#101;&#120;&#97;&#109;&#112;&#108;&#101;&#46;&#99;&#111;&#109;&#62;</td>
357 <td class="age">*</td> (glob)
374 <td class="age">*</td> (glob)
358 <td class="indexlinks"></td>
375 <td class="indexlinks"></td>
359 <td>
376 <td>
360 <a href="/rcoll/b/atom-log" title="subscribe to repository atom feed">
377 <a href="/rcoll/b/atom-log" title="subscribe to repository atom feed">
361 <img class="atom-logo" src="/static/feed-icon-14x14.png" alt="subscribe to repository atom feed">
378 <img class="atom-logo" src="/static/feed-icon-14x14.png" alt="subscribe to repository atom feed">
362 </a>
379 </a>
363 </td>
380 </td>
364 </tr>
381 </tr>
365
382
366 <tr>
383 <tr>
367 <td><a href="/rcoll/b/d/?style=paper">rcoll/b/d</a></td>
384 <td><a href="/rcoll/b/d/?style=paper">rcoll/b/d</a></td>
368 <td>unknown</td>
385 <td>unknown</td>
369 <td>&#70;&#111;&#111;&#32;&#66;&#97;&#114;&#32;&#60;&#102;&#111;&#111;&#46;&#98;&#97;&#114;&#64;&#101;&#120;&#97;&#109;&#112;&#108;&#101;&#46;&#99;&#111;&#109;&#62;</td>
386 <td>&#70;&#111;&#111;&#32;&#66;&#97;&#114;&#32;&#60;&#102;&#111;&#111;&#46;&#98;&#97;&#114;&#64;&#101;&#120;&#97;&#109;&#112;&#108;&#101;&#46;&#99;&#111;&#109;&#62;</td>
370 <td class="age">*</td> (glob)
387 <td class="age">*</td> (glob)
371 <td class="indexlinks"></td>
388 <td class="indexlinks"></td>
372 <td>
389 <td>
373 <a href="/rcoll/b/d/atom-log" title="subscribe to repository atom feed">
390 <a href="/rcoll/b/d/atom-log" title="subscribe to repository atom feed">
374 <img class="atom-logo" src="/static/feed-icon-14x14.png" alt="subscribe to repository atom feed">
391 <img class="atom-logo" src="/static/feed-icon-14x14.png" alt="subscribe to repository atom feed">
375 </a>
392 </a>
376 </td>
393 </td>
377 </tr>
394 </tr>
378
395
379 <tr>
396 <tr>
380 <td><a href="/rcoll/c/?style=paper">rcoll/c</a></td>
397 <td><a href="/rcoll/c/?style=paper">rcoll/c</a></td>
381 <td>unknown</td>
398 <td>unknown</td>
382 <td>&#70;&#111;&#111;&#32;&#66;&#97;&#114;&#32;&#60;&#102;&#111;&#111;&#46;&#98;&#97;&#114;&#64;&#101;&#120;&#97;&#109;&#112;&#108;&#101;&#46;&#99;&#111;&#109;&#62;</td>
399 <td>&#70;&#111;&#111;&#32;&#66;&#97;&#114;&#32;&#60;&#102;&#111;&#111;&#46;&#98;&#97;&#114;&#64;&#101;&#120;&#97;&#109;&#112;&#108;&#101;&#46;&#99;&#111;&#109;&#62;</td>
383 <td class="age">*</td> (glob)
400 <td class="age">*</td> (glob)
384 <td class="indexlinks"></td>
401 <td class="indexlinks"></td>
385 <td>
402 <td>
386 <a href="/rcoll/c/atom-log" title="subscribe to repository atom feed">
403 <a href="/rcoll/c/atom-log" title="subscribe to repository atom feed">
387 <img class="atom-logo" src="/static/feed-icon-14x14.png" alt="subscribe to repository atom feed">
404 <img class="atom-logo" src="/static/feed-icon-14x14.png" alt="subscribe to repository atom feed">
388 </a>
405 </a>
389 </td>
406 </td>
390 </tr>
407 </tr>
391
408
392 <tr>
409 <tr>
393 <td><a href="/rcoll/notrepo/e/?style=paper">rcoll/notrepo/e</a></td>
410 <td><a href="/rcoll/notrepo/e/?style=paper">rcoll/notrepo/e</a></td>
394 <td>unknown</td>
411 <td>unknown</td>
395 <td>&#70;&#111;&#111;&#32;&#66;&#97;&#114;&#32;&#60;&#102;&#111;&#111;&#46;&#98;&#97;&#114;&#64;&#101;&#120;&#97;&#109;&#112;&#108;&#101;&#46;&#99;&#111;&#109;&#62;</td>
412 <td>&#70;&#111;&#111;&#32;&#66;&#97;&#114;&#32;&#60;&#102;&#111;&#111;&#46;&#98;&#97;&#114;&#64;&#101;&#120;&#97;&#109;&#112;&#108;&#101;&#46;&#99;&#111;&#109;&#62;</td>
396 <td class="age">*</td> (glob)
413 <td class="age">*</td> (glob)
397 <td class="indexlinks"></td>
414 <td class="indexlinks"></td>
398 <td>
415 <td>
399 <a href="/rcoll/notrepo/e/atom-log" title="subscribe to repository atom feed">
416 <a href="/rcoll/notrepo/e/atom-log" title="subscribe to repository atom feed">
400 <img class="atom-logo" src="/static/feed-icon-14x14.png" alt="subscribe to repository atom feed">
417 <img class="atom-logo" src="/static/feed-icon-14x14.png" alt="subscribe to repository atom feed">
401 </a>
418 </a>
402 </td>
419 </td>
403 </tr>
420 </tr>
404
421
405 <tr>
422 <tr>
406 <td><a href="/rcoll/notrepo/e/e2/?style=paper">rcoll/notrepo/e/e2</a></td>
423 <td><a href="/rcoll/notrepo/e/e2/?style=paper">rcoll/notrepo/e/e2</a></td>
407 <td>unknown</td>
424 <td>unknown</td>
408 <td>&#70;&#111;&#111;&#32;&#66;&#97;&#114;&#32;&#60;&#102;&#111;&#111;&#46;&#98;&#97;&#114;&#64;&#101;&#120;&#97;&#109;&#112;&#108;&#101;&#46;&#99;&#111;&#109;&#62;</td>
425 <td>&#70;&#111;&#111;&#32;&#66;&#97;&#114;&#32;&#60;&#102;&#111;&#111;&#46;&#98;&#97;&#114;&#64;&#101;&#120;&#97;&#109;&#112;&#108;&#101;&#46;&#99;&#111;&#109;&#62;</td>
409 <td class="age">*</td> (glob)
426 <td class="age">*</td> (glob)
410 <td class="indexlinks"></td>
427 <td class="indexlinks"></td>
411 <td>
428 <td>
412 <a href="/rcoll/notrepo/e/e2/atom-log" title="subscribe to repository atom feed">
429 <a href="/rcoll/notrepo/e/e2/atom-log" title="subscribe to repository atom feed">
413 <img class="atom-logo" src="/static/feed-icon-14x14.png" alt="subscribe to repository atom feed">
430 <img class="atom-logo" src="/static/feed-icon-14x14.png" alt="subscribe to repository atom feed">
414 </a>
431 </a>
415 </td>
432 </td>
416 </tr>
433 </tr>
417
434
418 <tr>
435 <tr>
419 <td><a href="/rcoll/notrepo/f/?style=paper">fancy name for repo f</a></td>
436 <td><a href="/rcoll/notrepo/f/?style=paper">fancy name for repo f</a></td>
420 <td>unknown</td>
437 <td>unknown</td>
421 <td>&#70;&#111;&#111;&#32;&#66;&#97;&#114;&#32;&#60;&#102;&#111;&#111;&#46;&#98;&#97;&#114;&#64;&#101;&#120;&#97;&#109;&#112;&#108;&#101;&#46;&#99;&#111;&#109;&#62;</td>
438 <td>&#70;&#111;&#111;&#32;&#66;&#97;&#114;&#32;&#60;&#102;&#111;&#111;&#46;&#98;&#97;&#114;&#64;&#101;&#120;&#97;&#109;&#112;&#108;&#101;&#46;&#99;&#111;&#109;&#62;</td>
422 <td class="age">*</td> (glob)
439 <td class="age">*</td> (glob)
423 <td class="indexlinks"></td>
440 <td class="indexlinks"></td>
424 <td>
441 <td>
425 <a href="/rcoll/notrepo/f/atom-log" title="subscribe to repository atom feed">
442 <a href="/rcoll/notrepo/f/atom-log" title="subscribe to repository atom feed">
426 <img class="atom-logo" src="/static/feed-icon-14x14.png" alt="subscribe to repository atom feed">
443 <img class="atom-logo" src="/static/feed-icon-14x14.png" alt="subscribe to repository atom feed">
427 </a>
444 </a>
428 </td>
445 </td>
429 </tr>
446 </tr>
430
447
431 <tr>
448 <tr>
432 <td><a href="/rcoll/notrepo/f/f2/?style=paper">rcoll/notrepo/f/f2</a></td>
449 <td><a href="/rcoll/notrepo/f/f2/?style=paper">rcoll/notrepo/f/f2</a></td>
433 <td>unknown</td>
450 <td>unknown</td>
434 <td>&#70;&#111;&#111;&#32;&#66;&#97;&#114;&#32;&#60;&#102;&#111;&#111;&#46;&#98;&#97;&#114;&#64;&#101;&#120;&#97;&#109;&#112;&#108;&#101;&#46;&#99;&#111;&#109;&#62;</td>
451 <td>&#70;&#111;&#111;&#32;&#66;&#97;&#114;&#32;&#60;&#102;&#111;&#111;&#46;&#98;&#97;&#114;&#64;&#101;&#120;&#97;&#109;&#112;&#108;&#101;&#46;&#99;&#111;&#109;&#62;</td>
435 <td class="age">*</td> (glob)
452 <td class="age">*</td> (glob)
436 <td class="indexlinks"></td>
453 <td class="indexlinks"></td>
437 <td>
454 <td>
438 <a href="/rcoll/notrepo/f/f2/atom-log" title="subscribe to repository atom feed">
455 <a href="/rcoll/notrepo/f/f2/atom-log" title="subscribe to repository atom feed">
439 <img class="atom-logo" src="/static/feed-icon-14x14.png" alt="subscribe to repository atom feed">
456 <img class="atom-logo" src="/static/feed-icon-14x14.png" alt="subscribe to repository atom feed">
440 </a>
457 </a>
441 </td>
458 </td>
442 </tr>
459 </tr>
443
460
444 <tr>
461 <tr>
445 <td><a href="/star/webdir/a/?style=paper">star/webdir/a</a></td>
462 <td><a href="/star/webdir/a/?style=paper">star/webdir/a</a></td>
446 <td>unknown</td>
463 <td>unknown</td>
447 <td>&#70;&#111;&#111;&#32;&#66;&#97;&#114;&#32;&#60;&#102;&#111;&#111;&#46;&#98;&#97;&#114;&#64;&#101;&#120;&#97;&#109;&#112;&#108;&#101;&#46;&#99;&#111;&#109;&#62;</td>
464 <td>&#70;&#111;&#111;&#32;&#66;&#97;&#114;&#32;&#60;&#102;&#111;&#111;&#46;&#98;&#97;&#114;&#64;&#101;&#120;&#97;&#109;&#112;&#108;&#101;&#46;&#99;&#111;&#109;&#62;</td>
448 <td class="age">*</td> (glob)
465 <td class="age">*</td> (glob)
449 <td class="indexlinks"></td>
466 <td class="indexlinks"></td>
450 <td>
467 <td>
451 <a href="/star/webdir/a/atom-log" title="subscribe to repository atom feed">
468 <a href="/star/webdir/a/atom-log" title="subscribe to repository atom feed">
452 <img class="atom-logo" src="/static/feed-icon-14x14.png" alt="subscribe to repository atom feed">
469 <img class="atom-logo" src="/static/feed-icon-14x14.png" alt="subscribe to repository atom feed">
453 </a>
470 </a>
454 </td>
471 </td>
455 </tr>
472 </tr>
456
473
457 <tr>
474 <tr>
458 <td><a href="/star/webdir/a/.hg/patches/?style=paper">star/webdir/a/.hg/patches</a></td>
475 <td><a href="/star/webdir/a/.hg/patches/?style=paper">star/webdir/a/.hg/patches</a></td>
459 <td>unknown</td>
476 <td>unknown</td>
460 <td>&#70;&#111;&#111;&#32;&#66;&#97;&#114;&#32;&#60;&#102;&#111;&#111;&#46;&#98;&#97;&#114;&#64;&#101;&#120;&#97;&#109;&#112;&#108;&#101;&#46;&#99;&#111;&#109;&#62;</td>
477 <td>&#70;&#111;&#111;&#32;&#66;&#97;&#114;&#32;&#60;&#102;&#111;&#111;&#46;&#98;&#97;&#114;&#64;&#101;&#120;&#97;&#109;&#112;&#108;&#101;&#46;&#99;&#111;&#109;&#62;</td>
461 <td class="age">*</td> (glob)
478 <td class="age">*</td> (glob)
462 <td class="indexlinks"></td>
479 <td class="indexlinks"></td>
463 <td>
480 <td>
464 <a href="/star/webdir/a/.hg/patches/atom-log" title="subscribe to repository atom feed">
481 <a href="/star/webdir/a/.hg/patches/atom-log" title="subscribe to repository atom feed">
465 <img class="atom-logo" src="/static/feed-icon-14x14.png" alt="subscribe to repository atom feed">
482 <img class="atom-logo" src="/static/feed-icon-14x14.png" alt="subscribe to repository atom feed">
466 </a>
483 </a>
467 </td>
484 </td>
468 </tr>
485 </tr>
469
486
470 <tr>
487 <tr>
471 <td><a href="/star/webdir/b/?style=paper">star/webdir/b</a></td>
488 <td><a href="/star/webdir/b/?style=paper">star/webdir/b</a></td>
472 <td>unknown</td>
489 <td>unknown</td>
473 <td>&#70;&#111;&#111;&#32;&#66;&#97;&#114;&#32;&#60;&#102;&#111;&#111;&#46;&#98;&#97;&#114;&#64;&#101;&#120;&#97;&#109;&#112;&#108;&#101;&#46;&#99;&#111;&#109;&#62;</td>
490 <td>&#70;&#111;&#111;&#32;&#66;&#97;&#114;&#32;&#60;&#102;&#111;&#111;&#46;&#98;&#97;&#114;&#64;&#101;&#120;&#97;&#109;&#112;&#108;&#101;&#46;&#99;&#111;&#109;&#62;</td>
474 <td class="age">*</td> (glob)
491 <td class="age">*</td> (glob)
475 <td class="indexlinks"></td>
492 <td class="indexlinks"></td>
476 <td>
493 <td>
477 <a href="/star/webdir/b/atom-log" title="subscribe to repository atom feed">
494 <a href="/star/webdir/b/atom-log" title="subscribe to repository atom feed">
478 <img class="atom-logo" src="/static/feed-icon-14x14.png" alt="subscribe to repository atom feed">
495 <img class="atom-logo" src="/static/feed-icon-14x14.png" alt="subscribe to repository atom feed">
479 </a>
496 </a>
480 </td>
497 </td>
481 </tr>
498 </tr>
482
499
483 <tr>
500 <tr>
484 <td><a href="/star/webdir/c/?style=paper">star/webdir/c</a></td>
501 <td><a href="/star/webdir/c/?style=paper">star/webdir/c</a></td>
485 <td>unknown</td>
502 <td>unknown</td>
486 <td>&#70;&#111;&#111;&#32;&#66;&#97;&#114;&#32;&#60;&#102;&#111;&#111;&#46;&#98;&#97;&#114;&#64;&#101;&#120;&#97;&#109;&#112;&#108;&#101;&#46;&#99;&#111;&#109;&#62;</td>
503 <td>&#70;&#111;&#111;&#32;&#66;&#97;&#114;&#32;&#60;&#102;&#111;&#111;&#46;&#98;&#97;&#114;&#64;&#101;&#120;&#97;&#109;&#112;&#108;&#101;&#46;&#99;&#111;&#109;&#62;</td>
487 <td class="age">*</td> (glob)
504 <td class="age">*</td> (glob)
488 <td class="indexlinks"></td>
505 <td class="indexlinks"></td>
489 <td>
506 <td>
490 <a href="/star/webdir/c/atom-log" title="subscribe to repository atom feed">
507 <a href="/star/webdir/c/atom-log" title="subscribe to repository atom feed">
491 <img class="atom-logo" src="/static/feed-icon-14x14.png" alt="subscribe to repository atom feed">
508 <img class="atom-logo" src="/static/feed-icon-14x14.png" alt="subscribe to repository atom feed">
492 </a>
509 </a>
493 </td>
510 </td>
494 </tr>
511 </tr>
495
512
496 <tr>
513 <tr>
497 <td><a href="/star/webdir/notrepo/e/?style=paper">star/webdir/notrepo/e</a></td>
514 <td><a href="/star/webdir/notrepo/e/?style=paper">star/webdir/notrepo/e</a></td>
498 <td>unknown</td>
515 <td>unknown</td>
499 <td>&#70;&#111;&#111;&#32;&#66;&#97;&#114;&#32;&#60;&#102;&#111;&#111;&#46;&#98;&#97;&#114;&#64;&#101;&#120;&#97;&#109;&#112;&#108;&#101;&#46;&#99;&#111;&#109;&#62;</td>
516 <td>&#70;&#111;&#111;&#32;&#66;&#97;&#114;&#32;&#60;&#102;&#111;&#111;&#46;&#98;&#97;&#114;&#64;&#101;&#120;&#97;&#109;&#112;&#108;&#101;&#46;&#99;&#111;&#109;&#62;</td>
500 <td class="age">*</td> (glob)
517 <td class="age">*</td> (glob)
501 <td class="indexlinks"></td>
518 <td class="indexlinks"></td>
502 <td>
519 <td>
503 <a href="/star/webdir/notrepo/e/atom-log" title="subscribe to repository atom feed">
520 <a href="/star/webdir/notrepo/e/atom-log" title="subscribe to repository atom feed">
504 <img class="atom-logo" src="/static/feed-icon-14x14.png" alt="subscribe to repository atom feed">
521 <img class="atom-logo" src="/static/feed-icon-14x14.png" alt="subscribe to repository atom feed">
505 </a>
522 </a>
506 </td>
523 </td>
507 </tr>
524 </tr>
508
525
509 <tr>
526 <tr>
510 <td><a href="/star/webdir/notrepo/f/?style=paper">fancy name for repo f</a></td>
527 <td><a href="/star/webdir/notrepo/f/?style=paper">fancy name for repo f</a></td>
511 <td>unknown</td>
528 <td>unknown</td>
512 <td>&#70;&#111;&#111;&#32;&#66;&#97;&#114;&#32;&#60;&#102;&#111;&#111;&#46;&#98;&#97;&#114;&#64;&#101;&#120;&#97;&#109;&#112;&#108;&#101;&#46;&#99;&#111;&#109;&#62;</td>
529 <td>&#70;&#111;&#111;&#32;&#66;&#97;&#114;&#32;&#60;&#102;&#111;&#111;&#46;&#98;&#97;&#114;&#64;&#101;&#120;&#97;&#109;&#112;&#108;&#101;&#46;&#99;&#111;&#109;&#62;</td>
513 <td class="age">*</td> (glob)
530 <td class="age">*</td> (glob)
514 <td class="indexlinks"></td>
531 <td class="indexlinks"></td>
515 <td>
532 <td>
516 <a href="/star/webdir/notrepo/f/atom-log" title="subscribe to repository atom feed">
533 <a href="/star/webdir/notrepo/f/atom-log" title="subscribe to repository atom feed">
517 <img class="atom-logo" src="/static/feed-icon-14x14.png" alt="subscribe to repository atom feed">
534 <img class="atom-logo" src="/static/feed-icon-14x14.png" alt="subscribe to repository atom feed">
518 </a>
535 </a>
519 </td>
536 </td>
520 </tr>
537 </tr>
521
538
522 <tr>
539 <tr>
523 <td><a href="/starstar/webdir/a/?style=paper">starstar/webdir/a</a></td>
540 <td><a href="/starstar/webdir/a/?style=paper">starstar/webdir/a</a></td>
524 <td>unknown</td>
541 <td>unknown</td>
525 <td>&#70;&#111;&#111;&#32;&#66;&#97;&#114;&#32;&#60;&#102;&#111;&#111;&#46;&#98;&#97;&#114;&#64;&#101;&#120;&#97;&#109;&#112;&#108;&#101;&#46;&#99;&#111;&#109;&#62;</td>
542 <td>&#70;&#111;&#111;&#32;&#66;&#97;&#114;&#32;&#60;&#102;&#111;&#111;&#46;&#98;&#97;&#114;&#64;&#101;&#120;&#97;&#109;&#112;&#108;&#101;&#46;&#99;&#111;&#109;&#62;</td>
526 <td class="age">*</td> (glob)
543 <td class="age">*</td> (glob)
527 <td class="indexlinks"></td>
544 <td class="indexlinks"></td>
528 <td>
545 <td>
529 <a href="/starstar/webdir/a/atom-log" title="subscribe to repository atom feed">
546 <a href="/starstar/webdir/a/atom-log" title="subscribe to repository atom feed">
530 <img class="atom-logo" src="/static/feed-icon-14x14.png" alt="subscribe to repository atom feed">
547 <img class="atom-logo" src="/static/feed-icon-14x14.png" alt="subscribe to repository atom feed">
531 </a>
548 </a>
532 </td>
549 </td>
533 </tr>
550 </tr>
534
551
535 <tr>
552 <tr>
536 <td><a href="/starstar/webdir/a/.hg/patches/?style=paper">starstar/webdir/a/.hg/patches</a></td>
553 <td><a href="/starstar/webdir/a/.hg/patches/?style=paper">starstar/webdir/a/.hg/patches</a></td>
537 <td>unknown</td>
554 <td>unknown</td>
538 <td>&#70;&#111;&#111;&#32;&#66;&#97;&#114;&#32;&#60;&#102;&#111;&#111;&#46;&#98;&#97;&#114;&#64;&#101;&#120;&#97;&#109;&#112;&#108;&#101;&#46;&#99;&#111;&#109;&#62;</td>
555 <td>&#70;&#111;&#111;&#32;&#66;&#97;&#114;&#32;&#60;&#102;&#111;&#111;&#46;&#98;&#97;&#114;&#64;&#101;&#120;&#97;&#109;&#112;&#108;&#101;&#46;&#99;&#111;&#109;&#62;</td>
539 <td class="age">*</td> (glob)
556 <td class="age">*</td> (glob)
540 <td class="indexlinks"></td>
557 <td class="indexlinks"></td>
541 <td>
558 <td>
542 <a href="/starstar/webdir/a/.hg/patches/atom-log" title="subscribe to repository atom feed">
559 <a href="/starstar/webdir/a/.hg/patches/atom-log" title="subscribe to repository atom feed">
543 <img class="atom-logo" src="/static/feed-icon-14x14.png" alt="subscribe to repository atom feed">
560 <img class="atom-logo" src="/static/feed-icon-14x14.png" alt="subscribe to repository atom feed">
544 </a>
561 </a>
545 </td>
562 </td>
546 </tr>
563 </tr>
547
564
548 <tr>
565 <tr>
549 <td><a href="/starstar/webdir/b/?style=paper">starstar/webdir/b</a></td>
566 <td><a href="/starstar/webdir/b/?style=paper">starstar/webdir/b</a></td>
550 <td>unknown</td>
567 <td>unknown</td>
551 <td>&#70;&#111;&#111;&#32;&#66;&#97;&#114;&#32;&#60;&#102;&#111;&#111;&#46;&#98;&#97;&#114;&#64;&#101;&#120;&#97;&#109;&#112;&#108;&#101;&#46;&#99;&#111;&#109;&#62;</td>
568 <td>&#70;&#111;&#111;&#32;&#66;&#97;&#114;&#32;&#60;&#102;&#111;&#111;&#46;&#98;&#97;&#114;&#64;&#101;&#120;&#97;&#109;&#112;&#108;&#101;&#46;&#99;&#111;&#109;&#62;</td>
552 <td class="age">*</td> (glob)
569 <td class="age">*</td> (glob)
553 <td class="indexlinks"></td>
570 <td class="indexlinks"></td>
554 <td>
571 <td>
555 <a href="/starstar/webdir/b/atom-log" title="subscribe to repository atom feed">
572 <a href="/starstar/webdir/b/atom-log" title="subscribe to repository atom feed">
556 <img class="atom-logo" src="/static/feed-icon-14x14.png" alt="subscribe to repository atom feed">
573 <img class="atom-logo" src="/static/feed-icon-14x14.png" alt="subscribe to repository atom feed">
557 </a>
574 </a>
558 </td>
575 </td>
559 </tr>
576 </tr>
560
577
561 <tr>
578 <tr>
562 <td><a href="/starstar/webdir/b/d/?style=paper">starstar/webdir/b/d</a></td>
579 <td><a href="/starstar/webdir/b/d/?style=paper">starstar/webdir/b/d</a></td>
563 <td>unknown</td>
580 <td>unknown</td>
564 <td>&#70;&#111;&#111;&#32;&#66;&#97;&#114;&#32;&#60;&#102;&#111;&#111;&#46;&#98;&#97;&#114;&#64;&#101;&#120;&#97;&#109;&#112;&#108;&#101;&#46;&#99;&#111;&#109;&#62;</td>
581 <td>&#70;&#111;&#111;&#32;&#66;&#97;&#114;&#32;&#60;&#102;&#111;&#111;&#46;&#98;&#97;&#114;&#64;&#101;&#120;&#97;&#109;&#112;&#108;&#101;&#46;&#99;&#111;&#109;&#62;</td>
565 <td class="age">*</td> (glob)
582 <td class="age">*</td> (glob)
566 <td class="indexlinks"></td>
583 <td class="indexlinks"></td>
567 <td>
584 <td>
568 <a href="/starstar/webdir/b/d/atom-log" title="subscribe to repository atom feed">
585 <a href="/starstar/webdir/b/d/atom-log" title="subscribe to repository atom feed">
569 <img class="atom-logo" src="/static/feed-icon-14x14.png" alt="subscribe to repository atom feed">
586 <img class="atom-logo" src="/static/feed-icon-14x14.png" alt="subscribe to repository atom feed">
570 </a>
587 </a>
571 </td>
588 </td>
572 </tr>
589 </tr>
573
590
574 <tr>
591 <tr>
575 <td><a href="/starstar/webdir/c/?style=paper">starstar/webdir/c</a></td>
592 <td><a href="/starstar/webdir/c/?style=paper">starstar/webdir/c</a></td>
576 <td>unknown</td>
593 <td>unknown</td>
577 <td>&#70;&#111;&#111;&#32;&#66;&#97;&#114;&#32;&#60;&#102;&#111;&#111;&#46;&#98;&#97;&#114;&#64;&#101;&#120;&#97;&#109;&#112;&#108;&#101;&#46;&#99;&#111;&#109;&#62;</td>
594 <td>&#70;&#111;&#111;&#32;&#66;&#97;&#114;&#32;&#60;&#102;&#111;&#111;&#46;&#98;&#97;&#114;&#64;&#101;&#120;&#97;&#109;&#112;&#108;&#101;&#46;&#99;&#111;&#109;&#62;</td>
578 <td class="age">*</td> (glob)
595 <td class="age">*</td> (glob)
579 <td class="indexlinks"></td>
596 <td class="indexlinks"></td>
580 <td>
597 <td>
581 <a href="/starstar/webdir/c/atom-log" title="subscribe to repository atom feed">
598 <a href="/starstar/webdir/c/atom-log" title="subscribe to repository atom feed">
582 <img class="atom-logo" src="/static/feed-icon-14x14.png" alt="subscribe to repository atom feed">
599 <img class="atom-logo" src="/static/feed-icon-14x14.png" alt="subscribe to repository atom feed">
583 </a>
600 </a>
584 </td>
601 </td>
585 </tr>
602 </tr>
586
603
587 <tr>
604 <tr>
588 <td><a href="/starstar/webdir/notrepo/e/?style=paper">starstar/webdir/notrepo/e</a></td>
605 <td><a href="/starstar/webdir/notrepo/e/?style=paper">starstar/webdir/notrepo/e</a></td>
589 <td>unknown</td>
606 <td>unknown</td>
590 <td>&#70;&#111;&#111;&#32;&#66;&#97;&#114;&#32;&#60;&#102;&#111;&#111;&#46;&#98;&#97;&#114;&#64;&#101;&#120;&#97;&#109;&#112;&#108;&#101;&#46;&#99;&#111;&#109;&#62;</td>
607 <td>&#70;&#111;&#111;&#32;&#66;&#97;&#114;&#32;&#60;&#102;&#111;&#111;&#46;&#98;&#97;&#114;&#64;&#101;&#120;&#97;&#109;&#112;&#108;&#101;&#46;&#99;&#111;&#109;&#62;</td>
591 <td class="age">*</td> (glob)
608 <td class="age">*</td> (glob)
592 <td class="indexlinks"></td>
609 <td class="indexlinks"></td>
593 <td>
610 <td>
594 <a href="/starstar/webdir/notrepo/e/atom-log" title="subscribe to repository atom feed">
611 <a href="/starstar/webdir/notrepo/e/atom-log" title="subscribe to repository atom feed">
595 <img class="atom-logo" src="/static/feed-icon-14x14.png" alt="subscribe to repository atom feed">
612 <img class="atom-logo" src="/static/feed-icon-14x14.png" alt="subscribe to repository atom feed">
596 </a>
613 </a>
597 </td>
614 </td>
598 </tr>
615 </tr>
599
616
600 <tr>
617 <tr>
601 <td><a href="/starstar/webdir/notrepo/e/e2/?style=paper">starstar/webdir/notrepo/e/e2</a></td>
618 <td><a href="/starstar/webdir/notrepo/e/e2/?style=paper">starstar/webdir/notrepo/e/e2</a></td>
602 <td>unknown</td>
619 <td>unknown</td>
603 <td>&#70;&#111;&#111;&#32;&#66;&#97;&#114;&#32;&#60;&#102;&#111;&#111;&#46;&#98;&#97;&#114;&#64;&#101;&#120;&#97;&#109;&#112;&#108;&#101;&#46;&#99;&#111;&#109;&#62;</td>
620 <td>&#70;&#111;&#111;&#32;&#66;&#97;&#114;&#32;&#60;&#102;&#111;&#111;&#46;&#98;&#97;&#114;&#64;&#101;&#120;&#97;&#109;&#112;&#108;&#101;&#46;&#99;&#111;&#109;&#62;</td>
604 <td class="age">*</td> (glob)
621 <td class="age">*</td> (glob)
605 <td class="indexlinks"></td>
622 <td class="indexlinks"></td>
606 <td>
623 <td>
607 <a href="/starstar/webdir/notrepo/e/e2/atom-log" title="subscribe to repository atom feed">
624 <a href="/starstar/webdir/notrepo/e/e2/atom-log" title="subscribe to repository atom feed">
608 <img class="atom-logo" src="/static/feed-icon-14x14.png" alt="subscribe to repository atom feed">
625 <img class="atom-logo" src="/static/feed-icon-14x14.png" alt="subscribe to repository atom feed">
609 </a>
626 </a>
610 </td>
627 </td>
611 </tr>
628 </tr>
612
629
613 <tr>
630 <tr>
614 <td><a href="/starstar/webdir/notrepo/f/?style=paper">fancy name for repo f</a></td>
631 <td><a href="/starstar/webdir/notrepo/f/?style=paper">fancy name for repo f</a></td>
615 <td>unknown</td>
632 <td>unknown</td>
616 <td>&#70;&#111;&#111;&#32;&#66;&#97;&#114;&#32;&#60;&#102;&#111;&#111;&#46;&#98;&#97;&#114;&#64;&#101;&#120;&#97;&#109;&#112;&#108;&#101;&#46;&#99;&#111;&#109;&#62;</td>
633 <td>&#70;&#111;&#111;&#32;&#66;&#97;&#114;&#32;&#60;&#102;&#111;&#111;&#46;&#98;&#97;&#114;&#64;&#101;&#120;&#97;&#109;&#112;&#108;&#101;&#46;&#99;&#111;&#109;&#62;</td>
617 <td class="age">*</td> (glob)
634 <td class="age">*</td> (glob)
618 <td class="indexlinks"></td>
635 <td class="indexlinks"></td>
619 <td>
636 <td>
620 <a href="/starstar/webdir/notrepo/f/atom-log" title="subscribe to repository atom feed">
637 <a href="/starstar/webdir/notrepo/f/atom-log" title="subscribe to repository atom feed">
621 <img class="atom-logo" src="/static/feed-icon-14x14.png" alt="subscribe to repository atom feed">
638 <img class="atom-logo" src="/static/feed-icon-14x14.png" alt="subscribe to repository atom feed">
622 </a>
639 </a>
623 </td>
640 </td>
624 </tr>
641 </tr>
625
642
626 <tr>
643 <tr>
627 <td><a href="/starstar/webdir/notrepo/f/f2/?style=paper">starstar/webdir/notrepo/f/f2</a></td>
644 <td><a href="/starstar/webdir/notrepo/f/f2/?style=paper">starstar/webdir/notrepo/f/f2</a></td>
628 <td>unknown</td>
645 <td>unknown</td>
629 <td>&#70;&#111;&#111;&#32;&#66;&#97;&#114;&#32;&#60;&#102;&#111;&#111;&#46;&#98;&#97;&#114;&#64;&#101;&#120;&#97;&#109;&#112;&#108;&#101;&#46;&#99;&#111;&#109;&#62;</td>
646 <td>&#70;&#111;&#111;&#32;&#66;&#97;&#114;&#32;&#60;&#102;&#111;&#111;&#46;&#98;&#97;&#114;&#64;&#101;&#120;&#97;&#109;&#112;&#108;&#101;&#46;&#99;&#111;&#109;&#62;</td>
630 <td class="age">*</td> (glob)
647 <td class="age">*</td> (glob)
631 <td class="indexlinks"></td>
648 <td class="indexlinks"></td>
632 <td>
649 <td>
633 <a href="/starstar/webdir/notrepo/f/f2/atom-log" title="subscribe to repository atom feed">
650 <a href="/starstar/webdir/notrepo/f/f2/atom-log" title="subscribe to repository atom feed">
634 <img class="atom-logo" src="/static/feed-icon-14x14.png" alt="subscribe to repository atom feed">
651 <img class="atom-logo" src="/static/feed-icon-14x14.png" alt="subscribe to repository atom feed">
635 </a>
652 </a>
636 </td>
653 </td>
637 </tr>
654 </tr>
638
655
639 <tr>
656 <tr>
640 <td><a href="/astar/?style=paper">astar</a></td>
657 <td><a href="/astar/?style=paper">astar</a></td>
641 <td>unknown</td>
658 <td>unknown</td>
642 <td>&#70;&#111;&#111;&#32;&#66;&#97;&#114;&#32;&#60;&#102;&#111;&#111;&#46;&#98;&#97;&#114;&#64;&#101;&#120;&#97;&#109;&#112;&#108;&#101;&#46;&#99;&#111;&#109;&#62;</td>
659 <td>&#70;&#111;&#111;&#32;&#66;&#97;&#114;&#32;&#60;&#102;&#111;&#111;&#46;&#98;&#97;&#114;&#64;&#101;&#120;&#97;&#109;&#112;&#108;&#101;&#46;&#99;&#111;&#109;&#62;</td>
643 <td class="age">*</td> (glob)
660 <td class="age">*</td> (glob)
644 <td class="indexlinks"></td>
661 <td class="indexlinks"></td>
645 <td>
662 <td>
646 <a href="/astar/atom-log" title="subscribe to repository atom feed">
663 <a href="/astar/atom-log" title="subscribe to repository atom feed">
647 <img class="atom-logo" src="/static/feed-icon-14x14.png" alt="subscribe to repository atom feed">
664 <img class="atom-logo" src="/static/feed-icon-14x14.png" alt="subscribe to repository atom feed">
648 </a>
665 </a>
649 </td>
666 </td>
650 </tr>
667 </tr>
651
668
652 <tr>
669 <tr>
653 <td><a href="/astar/.hg/patches/?style=paper">astar/.hg/patches</a></td>
670 <td><a href="/astar/.hg/patches/?style=paper">astar/.hg/patches</a></td>
654 <td>unknown</td>
671 <td>unknown</td>
655 <td>&#70;&#111;&#111;&#32;&#66;&#97;&#114;&#32;&#60;&#102;&#111;&#111;&#46;&#98;&#97;&#114;&#64;&#101;&#120;&#97;&#109;&#112;&#108;&#101;&#46;&#99;&#111;&#109;&#62;</td>
672 <td>&#70;&#111;&#111;&#32;&#66;&#97;&#114;&#32;&#60;&#102;&#111;&#111;&#46;&#98;&#97;&#114;&#64;&#101;&#120;&#97;&#109;&#112;&#108;&#101;&#46;&#99;&#111;&#109;&#62;</td>
656 <td class="age">*</td> (glob)
673 <td class="age">*</td> (glob)
657 <td class="indexlinks"></td>
674 <td class="indexlinks"></td>
658 <td>
675 <td>
659 <a href="/astar/.hg/patches/atom-log" title="subscribe to repository atom feed">
676 <a href="/astar/.hg/patches/atom-log" title="subscribe to repository atom feed">
660 <img class="atom-logo" src="/static/feed-icon-14x14.png" alt="subscribe to repository atom feed">
677 <img class="atom-logo" src="/static/feed-icon-14x14.png" alt="subscribe to repository atom feed">
661 </a>
678 </a>
662 </td>
679 </td>
663 </tr>
680 </tr>
664
681
665 </tbody>
682 </tbody>
666 </table>
683 </table>
667 </div>
684 </div>
668 </div>
685 </div>
669 <script type="text/javascript">process_dates()</script>
686 <script type="text/javascript">process_dates()</script>
670
687
671
688
672 </body>
689 </body>
673 </html>
690 </html>
674
691
675 $ get-with-headers.py localhost:$HGPORT1 't?style=raw'
692 $ get-with-headers.py localhost:$HGPORT1 't?style=raw'
676 200 Script output follows
693 200 Script output follows
677
694
678
695
679 /t/a/
696 /t/a/
680
697
681 $ get-with-headers.py localhost:$HGPORT1 't/?style=raw'
698 $ get-with-headers.py localhost:$HGPORT1 't/?style=raw'
682 200 Script output follows
699 200 Script output follows
683
700
684
701
685 /t/a/
702 /t/a/
686
703
687 $ get-with-headers.py localhost:$HGPORT1 't/?style=paper'
704 $ get-with-headers.py localhost:$HGPORT1 't/?style=paper'
688 200 Script output follows
705 200 Script output follows
689
706
690 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
707 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
691 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US">
708 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US">
692 <head>
709 <head>
693 <link rel="icon" href="/static/hgicon.png" type="image/png" />
710 <link rel="icon" href="/static/hgicon.png" type="image/png" />
694 <meta name="robots" content="index, nofollow" />
711 <meta name="robots" content="index, nofollow" />
695 <link rel="stylesheet" href="/static/style-paper.css" type="text/css" />
712 <link rel="stylesheet" href="/static/style-paper.css" type="text/css" />
696 <script type="text/javascript" src="/static/mercurial.js"></script>
713 <script type="text/javascript" src="/static/mercurial.js"></script>
697
714
698 <title>Mercurial repositories index</title>
715 <title>Mercurial repositories index</title>
699 </head>
716 </head>
700 <body>
717 <body>
701
718
702 <div class="container">
719 <div class="container">
703 <div class="menu">
720 <div class="menu">
704 <a href="https://mercurial-scm.org/">
721 <a href="https://mercurial-scm.org/">
705 <img src="/static/hglogo.png" width=75 height=90 border=0 alt="mercurial" /></a>
722 <img src="/static/hglogo.png" width=75 height=90 border=0 alt="mercurial" /></a>
706 </div>
723 </div>
707 <div class="main">
724 <div class="main">
708 <h2 class="breadcrumb"><a href="/">Mercurial</a> &gt; <a href="/t">t</a> </h2>
725 <h2 class="breadcrumb"><a href="/">Mercurial</a> &gt; <a href="/t">t</a> </h2>
709
726
710 <table class="bigtable">
727 <table class="bigtable">
711 <thead>
728 <thead>
712 <tr>
729 <tr>
713 <th><a href="?sort=name">Name</a></th>
730 <th><a href="?sort=name">Name</a></th>
714 <th><a href="?sort=description">Description</a></th>
731 <th><a href="?sort=description">Description</a></th>
715 <th><a href="?sort=contact">Contact</a></th>
732 <th><a href="?sort=contact">Contact</a></th>
716 <th><a href="?sort=lastchange">Last modified</a></th>
733 <th><a href="?sort=lastchange">Last modified</a></th>
717 <th>&nbsp;</th>
734 <th>&nbsp;</th>
718 <th>&nbsp;</th>
735 <th>&nbsp;</th>
719 </tr>
736 </tr>
720 </thead>
737 </thead>
721 <tbody class="stripes2">
738 <tbody class="stripes2">
722
739
723 <tr>
740 <tr>
724 <td><a href="/t/a/?style=paper">a</a></td>
741 <td><a href="/t/a/?style=paper">a</a></td>
725 <td>unknown</td>
742 <td>unknown</td>
726 <td>&#70;&#111;&#111;&#32;&#66;&#97;&#114;&#32;&#60;&#102;&#111;&#111;&#46;&#98;&#97;&#114;&#64;&#101;&#120;&#97;&#109;&#112;&#108;&#101;&#46;&#99;&#111;&#109;&#62;</td>
743 <td>&#70;&#111;&#111;&#32;&#66;&#97;&#114;&#32;&#60;&#102;&#111;&#111;&#46;&#98;&#97;&#114;&#64;&#101;&#120;&#97;&#109;&#112;&#108;&#101;&#46;&#99;&#111;&#109;&#62;</td>
727 <td class="age">*</td> (glob)
744 <td class="age">*</td> (glob)
728 <td class="indexlinks"></td>
745 <td class="indexlinks"></td>
729 <td>
746 <td>
730 <a href="/t/a/atom-log" title="subscribe to repository atom feed">
747 <a href="/t/a/atom-log" title="subscribe to repository atom feed">
731 <img class="atom-logo" src="/static/feed-icon-14x14.png" alt="subscribe to repository atom feed">
748 <img class="atom-logo" src="/static/feed-icon-14x14.png" alt="subscribe to repository atom feed">
732 </a>
749 </a>
733 </td>
750 </td>
734 </tr>
751 </tr>
735
752
736 </tbody>
753 </tbody>
737 </table>
754 </table>
738 </div>
755 </div>
739 </div>
756 </div>
740 <script type="text/javascript">process_dates()</script>
757 <script type="text/javascript">process_dates()</script>
741
758
742
759
743 </body>
760 </body>
744 </html>
761 </html>
745
762
746 $ get-with-headers.py localhost:$HGPORT1 't/a?style=atom'
763 $ get-with-headers.py localhost:$HGPORT1 't/a?style=atom'
747 200 Script output follows
764 200 Script output follows
748
765
749 <?xml version="1.0" encoding="ascii"?>
766 <?xml version="1.0" encoding="ascii"?>
750 <feed xmlns="http://www.w3.org/2005/Atom">
767 <feed xmlns="http://www.w3.org/2005/Atom">
751 <!-- Changelog -->
768 <!-- Changelog -->
752 <id>http://*:$HGPORT1/t/a/</id> (glob)
769 <id>http://*:$HGPORT1/t/a/</id> (glob)
753 <link rel="self" href="http://*:$HGPORT1/t/a/atom-log"/> (glob)
770 <link rel="self" href="http://*:$HGPORT1/t/a/atom-log"/> (glob)
754 <link rel="alternate" href="http://*:$HGPORT1/t/a/"/> (glob)
771 <link rel="alternate" href="http://*:$HGPORT1/t/a/"/> (glob)
755 <title>t/a Changelog</title>
772 <title>t/a Changelog</title>
756 <updated>1970-01-01T00:00:01+00:00</updated>
773 <updated>1970-01-01T00:00:01+00:00</updated>
757
774
758 <entry>
775 <entry>
759 <title>[default] a</title>
776 <title>[default] a</title>
760 <id>http://*:$HGPORT1/t/a/#changeset-8580ff50825a50c8f716709acdf8de0deddcd6ab</id> (glob)
777 <id>http://*:$HGPORT1/t/a/#changeset-8580ff50825a50c8f716709acdf8de0deddcd6ab</id> (glob)
761 <link href="http://*:$HGPORT1/t/a/rev/8580ff50825a"/> (glob)
778 <link href="http://*:$HGPORT1/t/a/rev/8580ff50825a"/> (glob)
762 <author>
779 <author>
763 <name>test</name>
780 <name>test</name>
764 <email>&#116;&#101;&#115;&#116;</email>
781 <email>&#116;&#101;&#115;&#116;</email>
765 </author>
782 </author>
766 <updated>1970-01-01T00:00:01+00:00</updated>
783 <updated>1970-01-01T00:00:01+00:00</updated>
767 <published>1970-01-01T00:00:01+00:00</published>
784 <published>1970-01-01T00:00:01+00:00</published>
768 <content type="xhtml">
785 <content type="xhtml">
769 <table xmlns="http://www.w3.org/1999/xhtml">
786 <table xmlns="http://www.w3.org/1999/xhtml">
770 <tr>
787 <tr>
771 <th style="text-align:left;">changeset</th>
788 <th style="text-align:left;">changeset</th>
772 <td>8580ff50825a</td>
789 <td>8580ff50825a</td>
773 </tr>
790 </tr>
774 <tr>
791 <tr>
775 <th style="text-align:left;">branch</th>
792 <th style="text-align:left;">branch</th>
776 <td>default</td>
793 <td>default</td>
777 </tr>
794 </tr>
778 <tr>
795 <tr>
779 <th style="text-align:left;">bookmark</th>
796 <th style="text-align:left;">bookmark</th>
780 <td></td>
797 <td></td>
781 </tr>
798 </tr>
782 <tr>
799 <tr>
783 <th style="text-align:left;">tag</th>
800 <th style="text-align:left;">tag</th>
784 <td>tip</td>
801 <td>tip</td>
785 </tr>
802 </tr>
786 <tr>
803 <tr>
787 <th style="text-align:left;">user</th>
804 <th style="text-align:left;">user</th>
788 <td>&#116;&#101;&#115;&#116;</td>
805 <td>&#116;&#101;&#115;&#116;</td>
789 </tr>
806 </tr>
790 <tr>
807 <tr>
791 <th style="text-align:left;vertical-align:top;">description</th>
808 <th style="text-align:left;vertical-align:top;">description</th>
792 <td>a</td>
809 <td>a</td>
793 </tr>
810 </tr>
794 <tr>
811 <tr>
795 <th style="text-align:left;vertical-align:top;">files</th>
812 <th style="text-align:left;vertical-align:top;">files</th>
796 <td>a<br /></td>
813 <td>a<br /></td>
797 </tr>
814 </tr>
798 </table>
815 </table>
799 </content>
816 </content>
800 </entry>
817 </entry>
801
818
802 </feed>
819 </feed>
803 $ get-with-headers.py localhost:$HGPORT1 't/a/?style=atom'
820 $ get-with-headers.py localhost:$HGPORT1 't/a/?style=atom'
804 200 Script output follows
821 200 Script output follows
805
822
806 <?xml version="1.0" encoding="ascii"?>
823 <?xml version="1.0" encoding="ascii"?>
807 <feed xmlns="http://www.w3.org/2005/Atom">
824 <feed xmlns="http://www.w3.org/2005/Atom">
808 <!-- Changelog -->
825 <!-- Changelog -->
809 <id>http://*:$HGPORT1/t/a/</id> (glob)
826 <id>http://*:$HGPORT1/t/a/</id> (glob)
810 <link rel="self" href="http://*:$HGPORT1/t/a/atom-log"/> (glob)
827 <link rel="self" href="http://*:$HGPORT1/t/a/atom-log"/> (glob)
811 <link rel="alternate" href="http://*:$HGPORT1/t/a/"/> (glob)
828 <link rel="alternate" href="http://*:$HGPORT1/t/a/"/> (glob)
812 <title>t/a Changelog</title>
829 <title>t/a Changelog</title>
813 <updated>1970-01-01T00:00:01+00:00</updated>
830 <updated>1970-01-01T00:00:01+00:00</updated>
814
831
815 <entry>
832 <entry>
816 <title>[default] a</title>
833 <title>[default] a</title>
817 <id>http://*:$HGPORT1/t/a/#changeset-8580ff50825a50c8f716709acdf8de0deddcd6ab</id> (glob)
834 <id>http://*:$HGPORT1/t/a/#changeset-8580ff50825a50c8f716709acdf8de0deddcd6ab</id> (glob)
818 <link href="http://*:$HGPORT1/t/a/rev/8580ff50825a"/> (glob)
835 <link href="http://*:$HGPORT1/t/a/rev/8580ff50825a"/> (glob)
819 <author>
836 <author>
820 <name>test</name>
837 <name>test</name>
821 <email>&#116;&#101;&#115;&#116;</email>
838 <email>&#116;&#101;&#115;&#116;</email>
822 </author>
839 </author>
823 <updated>1970-01-01T00:00:01+00:00</updated>
840 <updated>1970-01-01T00:00:01+00:00</updated>
824 <published>1970-01-01T00:00:01+00:00</published>
841 <published>1970-01-01T00:00:01+00:00</published>
825 <content type="xhtml">
842 <content type="xhtml">
826 <table xmlns="http://www.w3.org/1999/xhtml">
843 <table xmlns="http://www.w3.org/1999/xhtml">
827 <tr>
844 <tr>
828 <th style="text-align:left;">changeset</th>
845 <th style="text-align:left;">changeset</th>
829 <td>8580ff50825a</td>
846 <td>8580ff50825a</td>
830 </tr>
847 </tr>
831 <tr>
848 <tr>
832 <th style="text-align:left;">branch</th>
849 <th style="text-align:left;">branch</th>
833 <td>default</td>
850 <td>default</td>
834 </tr>
851 </tr>
835 <tr>
852 <tr>
836 <th style="text-align:left;">bookmark</th>
853 <th style="text-align:left;">bookmark</th>
837 <td></td>
854 <td></td>
838 </tr>
855 </tr>
839 <tr>
856 <tr>
840 <th style="text-align:left;">tag</th>
857 <th style="text-align:left;">tag</th>
841 <td>tip</td>
858 <td>tip</td>
842 </tr>
859 </tr>
843 <tr>
860 <tr>
844 <th style="text-align:left;">user</th>
861 <th style="text-align:left;">user</th>
845 <td>&#116;&#101;&#115;&#116;</td>
862 <td>&#116;&#101;&#115;&#116;</td>
846 </tr>
863 </tr>
847 <tr>
864 <tr>
848 <th style="text-align:left;vertical-align:top;">description</th>
865 <th style="text-align:left;vertical-align:top;">description</th>
849 <td>a</td>
866 <td>a</td>
850 </tr>
867 </tr>
851 <tr>
868 <tr>
852 <th style="text-align:left;vertical-align:top;">files</th>
869 <th style="text-align:left;vertical-align:top;">files</th>
853 <td>a<br /></td>
870 <td>a<br /></td>
854 </tr>
871 </tr>
855 </table>
872 </table>
856 </content>
873 </content>
857 </entry>
874 </entry>
858
875
859 </feed>
876 </feed>
860 $ get-with-headers.py localhost:$HGPORT1 't/a/file/tip/a?style=raw'
877 $ get-with-headers.py localhost:$HGPORT1 't/a/file/tip/a?style=raw'
861 200 Script output follows
878 200 Script output follows
862
879
863 a
880 a
864
881
865 Test [paths] '*' extension
882 Test [paths] '*' extension
866
883
867 $ get-with-headers.py localhost:$HGPORT1 'coll/?style=raw'
884 $ get-with-headers.py localhost:$HGPORT1 'coll/?style=raw'
868 200 Script output follows
885 200 Script output follows
869
886
870
887
871 /coll/a/
888 /coll/a/
872 /coll/a/.hg/patches/
889 /coll/a/.hg/patches/
873 /coll/b/
890 /coll/b/
874 /coll/c/
891 /coll/c/
875 /coll/notrepo/e/
892 /coll/notrepo/e/
876 /coll/notrepo/f/
893 /coll/notrepo/f/
877
894
878 $ get-with-headers.py localhost:$HGPORT1 'coll/a/file/tip/a?style=raw'
895 $ get-with-headers.py localhost:$HGPORT1 'coll/a/file/tip/a?style=raw'
879 200 Script output follows
896 200 Script output follows
880
897
881 a
898 a
882
899
883 Test [paths] '**' extension
900 Test [paths] '**' extension
884
901
885 $ get-with-headers.py localhost:$HGPORT1 'rcoll/?style=raw'
902 $ get-with-headers.py localhost:$HGPORT1 'rcoll/?style=raw'
886 200 Script output follows
903 200 Script output follows
887
904
888
905
889 /rcoll/a/
906 /rcoll/a/
890 /rcoll/a/.hg/patches/
907 /rcoll/a/.hg/patches/
891 /rcoll/b/
908 /rcoll/b/
892 /rcoll/b/d/
909 /rcoll/b/d/
893 /rcoll/c/
910 /rcoll/c/
894 /rcoll/notrepo/e/
911 /rcoll/notrepo/e/
895 /rcoll/notrepo/e/e2/
912 /rcoll/notrepo/e/e2/
896 /rcoll/notrepo/f/
913 /rcoll/notrepo/f/
897 /rcoll/notrepo/f/f2/
914 /rcoll/notrepo/f/f2/
898
915
899 $ get-with-headers.py localhost:$HGPORT1 'rcoll/b/d/file/tip/d?style=raw'
916 $ get-with-headers.py localhost:$HGPORT1 'rcoll/b/d/file/tip/d?style=raw'
900 200 Script output follows
917 200 Script output follows
901
918
902 d
919 d
903
920
904 Test collapse = True
921 Test collapse = True
905
922
906 $ killdaemons.py
923 $ killdaemons.py
907 $ cat >> paths.conf <<EOF
924 $ cat >> paths.conf <<EOF
908 > [web]
925 > [web]
909 > collapse=true
926 > collapse=true
910 > descend = true
927 > descend = true
911 > EOF
928 > EOF
912 $ hg serve -p $HGPORT1 -d --pid-file=hg.pid --webdir-conf paths.conf \
929 $ hg serve -p $HGPORT1 -d --pid-file=hg.pid --webdir-conf paths.conf \
913 > -A access-paths.log -E error-paths-3.log
930 > -A access-paths.log -E error-paths-3.log
914 $ cat hg.pid >> $DAEMON_PIDS
931 $ cat hg.pid >> $DAEMON_PIDS
915 $ get-with-headers.py localhost:$HGPORT1 'coll/?style=raw'
932 $ get-with-headers.py localhost:$HGPORT1 'coll/?style=raw'
916 200 Script output follows
933 200 Script output follows
917
934
918
935
919 /coll/a/
936 /coll/a/
920 /coll/a/.hg/patches/
937 /coll/a/.hg/patches/
921 /coll/b/
938 /coll/b/
922 /coll/c/
939 /coll/c/
923 /coll/notrepo/
940 /coll/notrepo/
924
941
925 $ get-with-headers.py localhost:$HGPORT1 'coll/a/file/tip/a?style=raw'
942 $ get-with-headers.py localhost:$HGPORT1 'coll/a/file/tip/a?style=raw'
926 200 Script output follows
943 200 Script output follows
927
944
928 a
945 a
929 $ get-with-headers.py localhost:$HGPORT1 'rcoll/?style=raw'
946 $ get-with-headers.py localhost:$HGPORT1 'rcoll/?style=raw'
930 200 Script output follows
947 200 Script output follows
931
948
932
949
933 /rcoll/a/
950 /rcoll/a/
934 /rcoll/a/.hg/patches/
951 /rcoll/a/.hg/patches/
935 /rcoll/b/
952 /rcoll/b/
936 /rcoll/b/d/
953 /rcoll/b/d/
937 /rcoll/c/
954 /rcoll/c/
938 /rcoll/notrepo/
955 /rcoll/notrepo/
939
956
940 $ get-with-headers.py localhost:$HGPORT1 'rcoll/b/d/file/tip/d?style=raw'
957 $ get-with-headers.py localhost:$HGPORT1 'rcoll/b/d/file/tip/d?style=raw'
941 200 Script output follows
958 200 Script output follows
942
959
943 d
960 d
944
961
945 Test intermediate directories
962 Test intermediate directories
946
963
947 Hide the subrepo parent
964 Hide the subrepo parent
948
965
949 $ cp $root/notrepo/f/.hg/hgrc $root/notrepo/f/.hg/hgrc.bak
966 $ cp $root/notrepo/f/.hg/hgrc $root/notrepo/f/.hg/hgrc.bak
950 $ cat >> $root/notrepo/f/.hg/hgrc << EOF
967 $ cat >> $root/notrepo/f/.hg/hgrc << EOF
951 > [web]
968 > [web]
952 > hidden = True
969 > hidden = True
953 > EOF
970 > EOF
954
971
955 $ get-with-headers.py localhost:$HGPORT1 'rcoll/notrepo/?style=raw'
972 $ get-with-headers.py localhost:$HGPORT1 'rcoll/notrepo/?style=raw'
956 200 Script output follows
973 200 Script output follows
957
974
958
975
959 /rcoll/notrepo/e/
976 /rcoll/notrepo/e/
960 /rcoll/notrepo/e/e2/
977 /rcoll/notrepo/e/e2/
961
978
962
979
963 Subrepo parent not hidden
980 Subrepo parent not hidden
964 $ mv $root/notrepo/f/.hg/hgrc.bak $root/notrepo/f/.hg/hgrc
981 $ mv $root/notrepo/f/.hg/hgrc.bak $root/notrepo/f/.hg/hgrc
965
982
966 $ get-with-headers.py localhost:$HGPORT1 'rcoll/notrepo/?style=raw'
983 $ get-with-headers.py localhost:$HGPORT1 'rcoll/notrepo/?style=raw'
967 200 Script output follows
984 200 Script output follows
968
985
969
986
970 /rcoll/notrepo/e/
987 /rcoll/notrepo/e/
971 /rcoll/notrepo/e/e2/
988 /rcoll/notrepo/e/e2/
972 /rcoll/notrepo/f/
989 /rcoll/notrepo/f/
973 /rcoll/notrepo/f/f2/
990 /rcoll/notrepo/f/f2/
974
991
975
992
976 Test repositories inside intermediate directories
993 Test repositories inside intermediate directories
977
994
978 $ get-with-headers.py localhost:$HGPORT1 'rcoll/notrepo/e/file/tip/e?style=raw'
995 $ get-with-headers.py localhost:$HGPORT1 'rcoll/notrepo/e/file/tip/e?style=raw'
979 200 Script output follows
996 200 Script output follows
980
997
981 e
998 e
982
999
983 Test subrepositories inside intermediate directories
1000 Test subrepositories inside intermediate directories
984
1001
985 $ get-with-headers.py localhost:$HGPORT1 'rcoll/notrepo/f/f2/file/tip/f2?style=raw'
1002 $ get-with-headers.py localhost:$HGPORT1 'rcoll/notrepo/f/f2/file/tip/f2?style=raw'
986 200 Script output follows
1003 200 Script output follows
987
1004
988 f2
1005 f2
989
1006
990 Test descend = False
1007 Test descend = False
991
1008
992 $ killdaemons.py
1009 $ killdaemons.py
993 $ cat >> paths.conf <<EOF
1010 $ cat >> paths.conf <<EOF
994 > descend=false
1011 > descend=false
995 > EOF
1012 > EOF
996 $ hg serve -p $HGPORT1 -d --pid-file=hg.pid --webdir-conf paths.conf \
1013 $ hg serve -p $HGPORT1 -d --pid-file=hg.pid --webdir-conf paths.conf \
997 > -A access-paths.log -E error-paths-4.log
1014 > -A access-paths.log -E error-paths-4.log
998 $ cat hg.pid >> $DAEMON_PIDS
1015 $ cat hg.pid >> $DAEMON_PIDS
999 $ get-with-headers.py localhost:$HGPORT1 'coll/?style=raw'
1016 $ get-with-headers.py localhost:$HGPORT1 'coll/?style=raw'
1000 200 Script output follows
1017 200 Script output follows
1001
1018
1002
1019
1003 /coll/a/
1020 /coll/a/
1004 /coll/b/
1021 /coll/b/
1005 /coll/c/
1022 /coll/c/
1006
1023
1007 $ get-with-headers.py localhost:$HGPORT1 'coll/a/file/tip/a?style=raw'
1024 $ get-with-headers.py localhost:$HGPORT1 'coll/a/file/tip/a?style=raw'
1008 200 Script output follows
1025 200 Script output follows
1009
1026
1010 a
1027 a
1011 $ get-with-headers.py localhost:$HGPORT1 'rcoll/?style=raw'
1028 $ get-with-headers.py localhost:$HGPORT1 'rcoll/?style=raw'
1012 200 Script output follows
1029 200 Script output follows
1013
1030
1014
1031
1015 /rcoll/a/
1032 /rcoll/a/
1016 /rcoll/b/
1033 /rcoll/b/
1017 /rcoll/c/
1034 /rcoll/c/
1018
1035
1019 $ get-with-headers.py localhost:$HGPORT1 'rcoll/b/d/file/tip/d?style=raw'
1036 $ get-with-headers.py localhost:$HGPORT1 'rcoll/b/d/file/tip/d?style=raw'
1020 200 Script output follows
1037 200 Script output follows
1021
1038
1022 d
1039 d
1023
1040
1024 Test intermediate directories
1041 Test intermediate directories
1025
1042
1026 $ get-with-headers.py localhost:$HGPORT1 'rcoll/notrepo/?style=raw'
1043 $ get-with-headers.py localhost:$HGPORT1 'rcoll/notrepo/?style=raw'
1027 200 Script output follows
1044 200 Script output follows
1028
1045
1029
1046
1030 /rcoll/notrepo/e/
1047 /rcoll/notrepo/e/
1031 /rcoll/notrepo/f/
1048 /rcoll/notrepo/f/
1032
1049
1033
1050
1034 Test repositories inside intermediate directories
1051 Test repositories inside intermediate directories
1035
1052
1036 $ get-with-headers.py localhost:$HGPORT1 'rcoll/notrepo/e/file/tip/e?style=raw'
1053 $ get-with-headers.py localhost:$HGPORT1 'rcoll/notrepo/e/file/tip/e?style=raw'
1037 200 Script output follows
1054 200 Script output follows
1038
1055
1039 e
1056 e
1040
1057
1041 Test subrepositories inside intermediate directories
1058 Test subrepositories inside intermediate directories
1042
1059
1043 $ get-with-headers.py localhost:$HGPORT1 'rcoll/notrepo/f/f2/file/tip/f2?style=raw'
1060 $ get-with-headers.py localhost:$HGPORT1 'rcoll/notrepo/f/f2/file/tip/f2?style=raw'
1044 200 Script output follows
1061 200 Script output follows
1045
1062
1046 f2
1063 f2
1047
1064
1048 Test [paths] '*' in a repo root
1065 Test [paths] '*' in a repo root
1049
1066
1050 $ hg id http://localhost:$HGPORT1/astar
1067 $ hg id http://localhost:$HGPORT1/astar
1051 8580ff50825a
1068 8580ff50825a
1052
1069
1053 $ killdaemons.py
1070 $ killdaemons.py
1054 $ cat > paths.conf <<EOF
1071 $ cat > paths.conf <<EOF
1055 > [paths]
1072 > [paths]
1056 > t/a = $root/a
1073 > t/a = $root/a
1057 > t/b = $root/b
1074 > t/b = $root/b
1058 > c = $root/c
1075 > c = $root/c
1059 > EOF
1076 > EOF
1060 $ hg serve -p $HGPORT1 -d --pid-file=hg.pid --webdir-conf paths.conf \
1077 $ hg serve -p $HGPORT1 -d --pid-file=hg.pid --webdir-conf paths.conf \
1061 > -A access-paths.log -E error-paths-5.log
1078 > -A access-paths.log -E error-paths-5.log
1062 $ cat hg.pid >> $DAEMON_PIDS
1079 $ cat hg.pid >> $DAEMON_PIDS
1063 $ get-with-headers.py localhost:$HGPORT1 '?style=raw'
1080 $ get-with-headers.py localhost:$HGPORT1 '?style=raw'
1064 200 Script output follows
1081 200 Script output follows
1065
1082
1066
1083
1067 /t/a/
1084 /t/a/
1068 /t/b/
1085 /t/b/
1069 /c/
1086 /c/
1070
1087
1071 $ get-with-headers.py localhost:$HGPORT1 't/?style=raw'
1088 $ get-with-headers.py localhost:$HGPORT1 't/?style=raw'
1072 200 Script output follows
1089 200 Script output follows
1073
1090
1074
1091
1075 /t/a/
1092 /t/a/
1076 /t/b/
1093 /t/b/
1077
1094
1078
1095
1079 Test collapse = True
1096 Test collapse = True
1080
1097
1081 $ killdaemons.py
1098 $ killdaemons.py
1082 $ cat >> paths.conf <<EOF
1099 $ cat >> paths.conf <<EOF
1083 > [web]
1100 > [web]
1084 > collapse=true
1101 > collapse=true
1085 > EOF
1102 > EOF
1086 $ hg serve -p $HGPORT1 -d --pid-file=hg.pid --webdir-conf paths.conf \
1103 $ hg serve -p $HGPORT1 -d --pid-file=hg.pid --webdir-conf paths.conf \
1087 > -A access-paths.log -E error-paths-6.log
1104 > -A access-paths.log -E error-paths-6.log
1088 $ cat hg.pid >> $DAEMON_PIDS
1105 $ cat hg.pid >> $DAEMON_PIDS
1089 $ get-with-headers.py localhost:$HGPORT1 '?style=raw'
1106 $ get-with-headers.py localhost:$HGPORT1 '?style=raw'
1090 200 Script output follows
1107 200 Script output follows
1091
1108
1092
1109
1093 /t/
1110 /t/
1094 /c/
1111 /c/
1095
1112
1096 $ get-with-headers.py localhost:$HGPORT1 't/?style=raw'
1113 $ get-with-headers.py localhost:$HGPORT1 't/?style=raw'
1097 200 Script output follows
1114 200 Script output follows
1098
1115
1099
1116
1100 /t/a/
1117 /t/a/
1101 /t/b/
1118 /t/b/
1102
1119
1103
1120
1104 test descend = False
1121 test descend = False
1105
1122
1106 $ killdaemons.py
1123 $ killdaemons.py
1107 $ cat >> paths.conf <<EOF
1124 $ cat >> paths.conf <<EOF
1108 > descend=false
1125 > descend=false
1109 > EOF
1126 > EOF
1110 $ hg serve -p $HGPORT1 -d --pid-file=hg.pid --webdir-conf paths.conf \
1127 $ hg serve -p $HGPORT1 -d --pid-file=hg.pid --webdir-conf paths.conf \
1111 > -A access-paths.log -E error-paths-7.log
1128 > -A access-paths.log -E error-paths-7.log
1112 $ cat hg.pid >> $DAEMON_PIDS
1129 $ cat hg.pid >> $DAEMON_PIDS
1113 $ get-with-headers.py localhost:$HGPORT1 '?style=raw'
1130 $ get-with-headers.py localhost:$HGPORT1 '?style=raw'
1114 200 Script output follows
1131 200 Script output follows
1115
1132
1116
1133
1117 /c/
1134 /c/
1118
1135
1119 $ get-with-headers.py localhost:$HGPORT1 't/?style=raw'
1136 $ get-with-headers.py localhost:$HGPORT1 't/?style=raw'
1120 200 Script output follows
1137 200 Script output follows
1121
1138
1122
1139
1123 /t/a/
1140 /t/a/
1124 /t/b/
1141 /t/b/
1125
1142
1126 $ killdaemons.py
1143 $ killdaemons.py
1127 $ cat > paths.conf <<EOF
1144 $ cat > paths.conf <<EOF
1128 > [paths]
1145 > [paths]
1129 > nostore = $root/nostore
1146 > nostore = $root/nostore
1130 > inexistent = $root/inexistent
1147 > inexistent = $root/inexistent
1131 > EOF
1148 > EOF
1132 $ hg serve -p $HGPORT1 -d --pid-file=hg.pid --webdir-conf paths.conf \
1149 $ hg serve -p $HGPORT1 -d --pid-file=hg.pid --webdir-conf paths.conf \
1133 > -A access-paths.log -E error-paths-8.log
1150 > -A access-paths.log -E error-paths-8.log
1134 $ cat hg.pid >> $DAEMON_PIDS
1151 $ cat hg.pid >> $DAEMON_PIDS
1135
1152
1136 test inexistent and inaccessible repo should be ignored silently
1153 test inexistent and inaccessible repo should be ignored silently
1137
1154
1138 $ get-with-headers.py localhost:$HGPORT1 ''
1155 $ get-with-headers.py localhost:$HGPORT1 ''
1139 200 Script output follows
1156 200 Script output follows
1140
1157
1141 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
1158 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
1142 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US">
1159 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US">
1143 <head>
1160 <head>
1144 <link rel="icon" href="/static/hgicon.png" type="image/png" />
1161 <link rel="icon" href="/static/hgicon.png" type="image/png" />
1145 <meta name="robots" content="index, nofollow" />
1162 <meta name="robots" content="index, nofollow" />
1146 <link rel="stylesheet" href="/static/style-paper.css" type="text/css" />
1163 <link rel="stylesheet" href="/static/style-paper.css" type="text/css" />
1147 <script type="text/javascript" src="/static/mercurial.js"></script>
1164 <script type="text/javascript" src="/static/mercurial.js"></script>
1148
1165
1149 <title>Mercurial repositories index</title>
1166 <title>Mercurial repositories index</title>
1150 </head>
1167 </head>
1151 <body>
1168 <body>
1152
1169
1153 <div class="container">
1170 <div class="container">
1154 <div class="menu">
1171 <div class="menu">
1155 <a href="https://mercurial-scm.org/">
1172 <a href="https://mercurial-scm.org/">
1156 <img src="/static/hglogo.png" width=75 height=90 border=0 alt="mercurial" /></a>
1173 <img src="/static/hglogo.png" width=75 height=90 border=0 alt="mercurial" /></a>
1157 </div>
1174 </div>
1158 <div class="main">
1175 <div class="main">
1159 <h2 class="breadcrumb"><a href="/">Mercurial</a> </h2>
1176 <h2 class="breadcrumb"><a href="/">Mercurial</a> </h2>
1160
1177
1161 <table class="bigtable">
1178 <table class="bigtable">
1162 <thead>
1179 <thead>
1163 <tr>
1180 <tr>
1164 <th><a href="?sort=name">Name</a></th>
1181 <th><a href="?sort=name">Name</a></th>
1165 <th><a href="?sort=description">Description</a></th>
1182 <th><a href="?sort=description">Description</a></th>
1166 <th><a href="?sort=contact">Contact</a></th>
1183 <th><a href="?sort=contact">Contact</a></th>
1167 <th><a href="?sort=lastchange">Last modified</a></th>
1184 <th><a href="?sort=lastchange">Last modified</a></th>
1168 <th>&nbsp;</th>
1185 <th>&nbsp;</th>
1169 <th>&nbsp;</th>
1186 <th>&nbsp;</th>
1170 </tr>
1187 </tr>
1171 </thead>
1188 </thead>
1172 <tbody class="stripes2">
1189 <tbody class="stripes2">
1173
1190
1174 </tbody>
1191 </tbody>
1175 </table>
1192 </table>
1176 </div>
1193 </div>
1177 </div>
1194 </div>
1178 <script type="text/javascript">process_dates()</script>
1195 <script type="text/javascript">process_dates()</script>
1179
1196
1180
1197
1181 </body>
1198 </body>
1182 </html>
1199 </html>
1183
1200
1184
1201
1185 test listening address/port specified by web-conf (issue4699):
1202 test listening address/port specified by web-conf (issue4699):
1186
1203
1187 $ killdaemons.py
1204 $ killdaemons.py
1188 $ cat >> paths.conf <<EOF
1205 $ cat >> paths.conf <<EOF
1189 > [web]
1206 > [web]
1190 > address = localhost
1207 > address = localhost
1191 > port = $HGPORT1
1208 > port = $HGPORT1
1192 > EOF
1209 > EOF
1193 $ hg serve -d --pid-file=hg.pid --web-conf paths.conf \
1210 $ hg serve -d --pid-file=hg.pid --web-conf paths.conf \
1194 > -A access-paths.log -E error-paths-9.log
1211 > -A access-paths.log -E error-paths-9.log
1195 listening at http://*:$HGPORT1/ (bound to 127.0.0.1:$HGPORT1) (glob)
1212 listening at http://*:$HGPORT1/ (bound to 127.0.0.1:$HGPORT1) (glob)
1196 $ cat hg.pid >> $DAEMON_PIDS
1213 $ cat hg.pid >> $DAEMON_PIDS
1197 $ get-with-headers.py localhost:$HGPORT1 '?style=raw'
1214 $ get-with-headers.py localhost:$HGPORT1 '?style=raw'
1198 200 Script output follows
1215 200 Script output follows
1199
1216
1200
1217
1201
1218
1202 test --port option overrides web.port:
1219 test --port option overrides web.port:
1203
1220
1204 $ killdaemons.py
1221 $ killdaemons.py
1205 $ hg serve -p $HGPORT2 -d -v --pid-file=hg.pid --web-conf paths.conf \
1222 $ hg serve -p $HGPORT2 -d -v --pid-file=hg.pid --web-conf paths.conf \
1206 > -A access-paths.log -E error-paths-10.log
1223 > -A access-paths.log -E error-paths-10.log
1207 listening at http://*:$HGPORT2/ (bound to 127.0.0.1:$HGPORT2) (glob)
1224 listening at http://*:$HGPORT2/ (bound to 127.0.0.1:$HGPORT2) (glob)
1208 $ cat hg.pid >> $DAEMON_PIDS
1225 $ cat hg.pid >> $DAEMON_PIDS
1209 $ get-with-headers.py localhost:$HGPORT2 '?style=raw'
1226 $ get-with-headers.py localhost:$HGPORT2 '?style=raw'
1210 200 Script output follows
1227 200 Script output follows
1211
1228
1212
1229
1213
1230
1214
1231
1215 $ killdaemons.py
1232 $ killdaemons.py
1216 $ cat > collections.conf <<EOF
1233 $ cat > collections.conf <<EOF
1217 > [collections]
1234 > [collections]
1218 > $root=$root
1235 > $root=$root
1219 > EOF
1236 > EOF
1220 $ hg serve --config web.baseurl=http://hg.example.com:8080/ -p $HGPORT2 -d \
1237 $ hg serve --config web.baseurl=http://hg.example.com:8080/ -p $HGPORT2 -d \
1221 > --pid-file=hg.pid --webdir-conf collections.conf \
1238 > --pid-file=hg.pid --webdir-conf collections.conf \
1222 > -A access-collections.log -E error-collections.log
1239 > -A access-collections.log -E error-collections.log
1223 $ cat hg.pid >> $DAEMON_PIDS
1240 $ cat hg.pid >> $DAEMON_PIDS
1224
1241
1225 collections: should succeed
1242 collections: should succeed
1226
1243
1227 $ get-with-headers.py localhost:$HGPORT2 '?style=raw'
1244 $ get-with-headers.py localhost:$HGPORT2 '?style=raw'
1228 200 Script output follows
1245 200 Script output follows
1229
1246
1230
1247
1231 /a/
1248 /a/
1232 /a/.hg/patches/
1249 /a/.hg/patches/
1233 /b/
1250 /b/
1234 /c/
1251 /c/
1235 /notrepo/e/
1252 /notrepo/e/
1236 /notrepo/f/
1253 /notrepo/f/
1237
1254
1238 $ get-with-headers.py localhost:$HGPORT2 'a/file/tip/a?style=raw'
1255 $ get-with-headers.py localhost:$HGPORT2 'a/file/tip/a?style=raw'
1239 200 Script output follows
1256 200 Script output follows
1240
1257
1241 a
1258 a
1242 $ get-with-headers.py localhost:$HGPORT2 'b/file/tip/b?style=raw'
1259 $ get-with-headers.py localhost:$HGPORT2 'b/file/tip/b?style=raw'
1243 200 Script output follows
1260 200 Script output follows
1244
1261
1245 b
1262 b
1246 $ get-with-headers.py localhost:$HGPORT2 'c/file/tip/c?style=raw'
1263 $ get-with-headers.py localhost:$HGPORT2 'c/file/tip/c?style=raw'
1247 200 Script output follows
1264 200 Script output follows
1248
1265
1249 c
1266 c
1250
1267
1251 atom-log with basedir /
1268 atom-log with basedir /
1252
1269
1253 $ get-with-headers.py localhost:$HGPORT2 'a/atom-log' | grep '<link'
1270 $ get-with-headers.py localhost:$HGPORT2 'a/atom-log' | grep '<link'
1254 <link rel="self" href="http://hg.example.com:8080/a/atom-log"/>
1271 <link rel="self" href="http://hg.example.com:8080/a/atom-log"/>
1255 <link rel="alternate" href="http://hg.example.com:8080/a/"/>
1272 <link rel="alternate" href="http://hg.example.com:8080/a/"/>
1256 <link href="http://hg.example.com:8080/a/rev/8580ff50825a"/>
1273 <link href="http://hg.example.com:8080/a/rev/8580ff50825a"/>
1257
1274
1258 rss-log with basedir /
1275 rss-log with basedir /
1259
1276
1260 $ get-with-headers.py localhost:$HGPORT2 'a/rss-log' | grep '<guid'
1277 $ get-with-headers.py localhost:$HGPORT2 'a/rss-log' | grep '<guid'
1261 <guid isPermaLink="true">http://hg.example.com:8080/a/rev/8580ff50825a</guid>
1278 <guid isPermaLink="true">http://hg.example.com:8080/a/rev/8580ff50825a</guid>
1262 $ killdaemons.py
1279 $ killdaemons.py
1263 $ hg serve --config web.baseurl=http://hg.example.com:8080/foo/ -p $HGPORT2 -d \
1280 $ hg serve --config web.baseurl=http://hg.example.com:8080/foo/ -p $HGPORT2 -d \
1264 > --pid-file=hg.pid --webdir-conf collections.conf \
1281 > --pid-file=hg.pid --webdir-conf collections.conf \
1265 > -A access-collections-2.log -E error-collections-2.log
1282 > -A access-collections-2.log -E error-collections-2.log
1266 $ cat hg.pid >> $DAEMON_PIDS
1283 $ cat hg.pid >> $DAEMON_PIDS
1267
1284
1268 atom-log with basedir /foo/
1285 atom-log with basedir /foo/
1269
1286
1270 $ get-with-headers.py localhost:$HGPORT2 'a/atom-log' | grep '<link'
1287 $ get-with-headers.py localhost:$HGPORT2 'a/atom-log' | grep '<link'
1271 <link rel="self" href="http://hg.example.com:8080/foo/a/atom-log"/>
1288 <link rel="self" href="http://hg.example.com:8080/foo/a/atom-log"/>
1272 <link rel="alternate" href="http://hg.example.com:8080/foo/a/"/>
1289 <link rel="alternate" href="http://hg.example.com:8080/foo/a/"/>
1273 <link href="http://hg.example.com:8080/foo/a/rev/8580ff50825a"/>
1290 <link href="http://hg.example.com:8080/foo/a/rev/8580ff50825a"/>
1274
1291
1275 rss-log with basedir /foo/
1292 rss-log with basedir /foo/
1276
1293
1277 $ get-with-headers.py localhost:$HGPORT2 'a/rss-log' | grep '<guid'
1294 $ get-with-headers.py localhost:$HGPORT2 'a/rss-log' | grep '<guid'
1278 <guid isPermaLink="true">http://hg.example.com:8080/foo/a/rev/8580ff50825a</guid>
1295 <guid isPermaLink="true">http://hg.example.com:8080/foo/a/rev/8580ff50825a</guid>
1279
1296
1280 Path refreshing works as expected
1297 Path refreshing works as expected
1281
1298
1282 $ killdaemons.py
1299 $ killdaemons.py
1283 $ mkdir $root/refreshtest
1300 $ mkdir $root/refreshtest
1284 $ hg init $root/refreshtest/a
1301 $ hg init $root/refreshtest/a
1285 $ cat > paths.conf << EOF
1302 $ cat > paths.conf << EOF
1286 > [paths]
1303 > [paths]
1287 > / = $root/refreshtest/*
1304 > / = $root/refreshtest/*
1288 > EOF
1305 > EOF
1289 $ hg serve -p $HGPORT1 -d --pid-file hg.pid --webdir-conf paths.conf
1306 $ hg serve -p $HGPORT1 -d --pid-file hg.pid --webdir-conf paths.conf
1290 $ cat hg.pid >> $DAEMON_PIDS
1307 $ cat hg.pid >> $DAEMON_PIDS
1291
1308
1292 $ get-with-headers.py localhost:$HGPORT1 '?style=raw'
1309 $ get-with-headers.py localhost:$HGPORT1 '?style=raw'
1293 200 Script output follows
1310 200 Script output follows
1294
1311
1295
1312
1296 /a/
1313 /a/
1297
1314
1298
1315
1299 By default refreshing occurs every 20s and a new repo won't be listed
1316 By default refreshing occurs every 20s and a new repo won't be listed
1300 immediately.
1317 immediately.
1301
1318
1302 $ hg init $root/refreshtest/b
1319 $ hg init $root/refreshtest/b
1303 $ get-with-headers.py localhost:$HGPORT1 '?style=raw'
1320 $ get-with-headers.py localhost:$HGPORT1 '?style=raw'
1304 200 Script output follows
1321 200 Script output follows
1305
1322
1306
1323
1307 /a/
1324 /a/
1308
1325
1309
1326
1310 Restart the server with no refresh interval. New repo should appear
1327 Restart the server with no refresh interval. New repo should appear
1311 immediately.
1328 immediately.
1312
1329
1313 $ killdaemons.py
1330 $ killdaemons.py
1314 $ cat > paths.conf << EOF
1331 $ cat > paths.conf << EOF
1315 > [web]
1332 > [web]
1316 > refreshinterval = -1
1333 > refreshinterval = -1
1317 > [paths]
1334 > [paths]
1318 > / = $root/refreshtest/*
1335 > / = $root/refreshtest/*
1319 > EOF
1336 > EOF
1320 $ hg serve -p $HGPORT1 -d --pid-file hg.pid --webdir-conf paths.conf
1337 $ hg serve -p $HGPORT1 -d --pid-file hg.pid --webdir-conf paths.conf
1321 $ cat hg.pid >> $DAEMON_PIDS
1338 $ cat hg.pid >> $DAEMON_PIDS
1322
1339
1323 $ get-with-headers.py localhost:$HGPORT1 '?style=raw'
1340 $ get-with-headers.py localhost:$HGPORT1 '?style=raw'
1324 200 Script output follows
1341 200 Script output follows
1325
1342
1326
1343
1327 /a/
1344 /a/
1328 /b/
1345 /b/
1329
1346
1330
1347
1331 $ hg init $root/refreshtest/c
1348 $ hg init $root/refreshtest/c
1332 $ get-with-headers.py localhost:$HGPORT1 '?style=raw'
1349 $ get-with-headers.py localhost:$HGPORT1 '?style=raw'
1333 200 Script output follows
1350 200 Script output follows
1334
1351
1335
1352
1336 /a/
1353 /a/
1337 /b/
1354 /b/
1338 /c/
1355 /c/
1339
1356
1340
1357
1341 paths errors 1
1358 paths errors 1
1342
1359
1343 $ cat error-paths-1.log
1360 $ cat error-paths-1.log
1344
1361
1345 paths errors 2
1362 paths errors 2
1346
1363
1347 $ cat error-paths-2.log
1364 $ cat error-paths-2.log
1348
1365
1349 paths errors 3
1366 paths errors 3
1350
1367
1351 $ cat error-paths-3.log
1368 $ cat error-paths-3.log
1352
1369
1353 paths errors 4
1370 paths errors 4
1354
1371
1355 $ cat error-paths-4.log
1372 $ cat error-paths-4.log
1356
1373
1357 paths errors 5
1374 paths errors 5
1358
1375
1359 $ cat error-paths-5.log
1376 $ cat error-paths-5.log
1360
1377
1361 paths errors 6
1378 paths errors 6
1362
1379
1363 $ cat error-paths-6.log
1380 $ cat error-paths-6.log
1364
1381
1365 paths errors 7
1382 paths errors 7
1366
1383
1367 $ cat error-paths-7.log
1384 $ cat error-paths-7.log
1368
1385
1369 paths errors 8
1386 paths errors 8
1370
1387
1371 $ cat error-paths-8.log
1388 $ cat error-paths-8.log
1372
1389
1373 paths errors 9
1390 paths errors 9
1374
1391
1375 $ cat error-paths-9.log
1392 $ cat error-paths-9.log
1376
1393
1377 paths errors 10
1394 paths errors 10
1378
1395
1379 $ cat error-paths-10.log
1396 $ cat error-paths-10.log
1380
1397
1381 collections errors
1398 collections errors
1382
1399
1383 $ cat error-collections.log
1400 $ cat error-collections.log
1384
1401
1385 collections errors 2
1402 collections errors 2
1386
1403
1387 $ cat error-collections-2.log
1404 $ cat error-collections-2.log
General Comments 0
You need to be logged in to leave comments. Login now