annotate tests/test-hgweb-no-request-uri.t @ 25757:4d1382fd96ff

context: write dirstate out explicitly at the end of markcommitted To detect change of a file without redundant comparison of file content, dirstate recognizes a file as certainly clean, if: (1) it is already known as "normal", (2) dirstate entry for it has valid (= not "-1") timestamp, and (3) mode, size and timestamp of it on the filesystem are as same as ones expected in dirstate This works as expected in many cases, but doesn't in the corner case that changing a file keeps mode, size and timestamp of it on the filesystem. The timetable below shows steps in one of typical such situations: ---- ----------------------------------- ---------------- timestamp of "f" ---------------- dirstate file- time action mem file system ---- ----------------------------------- ---- ----- ----- * *** *** - 'hg transplant REV1 REV2 ...' - transplanting REV1 .... N - change "f", but keep size N (via 'patch.patch()') - 'dirstate.normal("f")' N *** (via 'repo.commit()') - transplanting REV2 - change "f", but keep size N (via 'patch.patch()') - aborted while patching N+1 - release wlock - 'dirstate.write()' N N N - 'hg status' shows "r1" as "clean" N N N ---- ----------------------------------- ---- ----- ----- The most important point is that 'dirstate.write()' is executed at N+1 or later. This causes writing dirstate timestamp N of "f" out successfully. If it is executed at N, 'parsers.pack_dirstate()' replaces timestamp N with "-1" before actual writing dirstate out. This issue can occur when 'hg transplant' satisfies conditions below: - multiple revisions to be transplanted change the same file - those revisions don't change mode and size of the file, and - the 2nd or later revision of them fails after changing the file The root cause of this issue is that files are changed without flushing in-memory dirstate changes via 'repo.commit()' (even though omitting 'dirstate.normallookup()' on files changed by 'patch.patch()' for efficiency also causes this issue). To detect changes of files correctly, this patch writes in-memory dirstate changes out explicitly after marking files as clean in 'committablectx.markcommitted()', which is invoked via 'repo.commit()'. After this change, timetable is changed as below: ---- ----------------------------------- ---------------- timestamp of "f" ---------------- dirstate file- time action mem file system ---- ----------------------------------- ---- ----- ----- * *** *** - 'hg transplant REV1 REV2 ...' - transplanting REV1 .... N - change "f", but keep size N (via 'patch.patch()') - 'dirstate.normal("f")' N *** (via 'repo.commit()') ----------------------------------- ---- ----- ----- - 'dirsttate.write()' -1 -1 ----------------------------------- ---- ----- ----- - transplanting REV2 - change "f", but keep size N (via 'patch.patch()') - aborted while patching N+1 - release wlock - 'dirstate.write()' -1 -1 N - 'hg status' shows "r1" as "clean" -1 -1 N ---- ----------------------------------- ---- ----- ----- To reproduce this issue in tests certainly, this patch emulates some timing critical actions as below: - change "f" at N 'patch.patch()' with 'fakepatchtime.py' explicitly changes mtime of patched files to "2000-01-01 00:00" (= N). - 'dirstate.write()' via 'repo.commit()' at N 'fakedirstatewritetime.py' forces 'pack_dirstate()' to use "2000-01-01 00:00" as "now", only if 'pack_dirstate()' is invoked via 'committablectx.markcommitted()'. - 'dirstate.write()' via releasing wlock at N+1 (or "not at N") 'pack_dirstate()' via releasing wlock uses actual timestamp at runtime as "now", and it should be different from the "2000-01-01 00:00" of "f". BTW, this patch doesn't test cases below, even though 'patch.patch()' is used similarly in these cases: 1. failure of 'hg import' or 'hg qpush' 2. success of 'hg import', 'hg qpush' or 'hg transplant' Case (1) above doesn't cause this kind of issue, because: - if patching is aborted by conflicts, changed files are committed changed files are marked as CLEAN, even though they are partially patched. - otherwise, dirstate are fully restored by 'dirstateguard' For example in timetable above, timestamp of "f" in .hg/dirstate is restored to -1 (or less than N), and subsequent 'hg status' can detect changes correctly. Case (2) always causes 'repo.status()' invocation via 'repo.commit()' just after changing files inside same wlock scope. ---- ----------------------------------- ---------------- timestamp of "f" ---------------- dirstate file- time action mem file system ---- ----------------------------------- ---- ----- ----- N *** *** - make file "f" clean N - execute 'hg foobar' .... - 'dirstate.normal("f")' N *** (e.g. via dirty check or previous 'repo.commit()') - change "f", but keep size N - 'repo.status()' (*1) (via 'repo.commit()') ---- ----------------------------------- ---- ----- ----- At a glance, 'repo.status()' at (*1) seems to cause similar issue (= "changed files are treated as clean"), but actually doesn't. 'dirstate._lastnormaltime' should be N at (*1) above, because 'dirstate.normal()' via dirty check is finished at N. Therefore, "f" changed at N (= 'dirstate._lastnormaltime') is forcibly treated as "unsure" at (*1), and changes are detected as expected (see 'dirstate.status()' for detail). If 'hg import' is executed with '--no-commit', 'repo.status()' isn't invoked just after changing files inside same wlock scope. But preceding 'dirstate.normal()' is invoked inside another wlock scope via 'cmdutil.bailifchanged()', and in-memory changes should be flushed at the end of that scope. Therefore, timestamp N of clean "f" should be replaced by -1, if 'dirstate.write()' is invoked at N. It means that condition of this issue isn't satisfied.
author FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
date Wed, 08 Jul 2015 17:01:09 +0900
parents 91eb605022f5
children ba7809b053fd
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
12439
31ea3ce83a92 tests: unify test-hgweb-no-request-uri
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
1 This tests if hgweb and hgwebdir still work if the REQUEST_URI variable is
31ea3ce83a92 tests: unify test-hgweb-no-request-uri
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
2 no longer passed with the request. Instead, SCRIPT_NAME and PATH_INFO
31ea3ce83a92 tests: unify test-hgweb-no-request-uri
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
3 should be used from d74fc8dec2b4 onward to route the request.
5579
e15f7db0f0ee Use SCRIPT_NAME and PATH_INFO instead of REQUEST_URI. This is required by WSGI (fixes issue846).
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents:
diff changeset
4
13956
ffb5c09ba822 tests: remove redundant mkdir
Martin Geisler <mg@lazybytes.net>
parents: 12743
diff changeset
5 $ hg init repo
12439
31ea3ce83a92 tests: unify test-hgweb-no-request-uri
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
6 $ cd repo
31ea3ce83a92 tests: unify test-hgweb-no-request-uri
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
7 $ echo foo > bar
31ea3ce83a92 tests: unify test-hgweb-no-request-uri
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
8 $ hg add bar
31ea3ce83a92 tests: unify test-hgweb-no-request-uri
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
9 $ hg commit -m "test"
31ea3ce83a92 tests: unify test-hgweb-no-request-uri
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
10 $ hg tip
31ea3ce83a92 tests: unify test-hgweb-no-request-uri
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
11 changeset: 0:61c9426e69fe
31ea3ce83a92 tests: unify test-hgweb-no-request-uri
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
12 tag: tip
31ea3ce83a92 tests: unify test-hgweb-no-request-uri
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
13 user: test
31ea3ce83a92 tests: unify test-hgweb-no-request-uri
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
14 date: Thu Jan 01 00:00:00 1970 +0000
31ea3ce83a92 tests: unify test-hgweb-no-request-uri
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
15 summary: test
31ea3ce83a92 tests: unify test-hgweb-no-request-uri
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
16
31ea3ce83a92 tests: unify test-hgweb-no-request-uri
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
17 $ cat > request.py <<EOF
31ea3ce83a92 tests: unify test-hgweb-no-request-uri
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
18 > from mercurial.hgweb import hgweb, hgwebdir
31ea3ce83a92 tests: unify test-hgweb-no-request-uri
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
19 > from StringIO import StringIO
31ea3ce83a92 tests: unify test-hgweb-no-request-uri
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
20 > import os, sys
31ea3ce83a92 tests: unify test-hgweb-no-request-uri
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
21 >
31ea3ce83a92 tests: unify test-hgweb-no-request-uri
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
22 > errors = StringIO()
31ea3ce83a92 tests: unify test-hgweb-no-request-uri
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
23 > input = StringIO()
31ea3ce83a92 tests: unify test-hgweb-no-request-uri
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
24 >
31ea3ce83a92 tests: unify test-hgweb-no-request-uri
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
25 > def startrsp(status, headers):
12743
4c4aeaab2339 check-code: add 'no tab indent' check for unified tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 12643
diff changeset
26 > print '---- STATUS'
4c4aeaab2339 check-code: add 'no tab indent' check for unified tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 12643
diff changeset
27 > print status
4c4aeaab2339 check-code: add 'no tab indent' check for unified tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 12643
diff changeset
28 > print '---- HEADERS'
4c4aeaab2339 check-code: add 'no tab indent' check for unified tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 12643
diff changeset
29 > print [i for i in headers if i[0] != 'ETag']
4c4aeaab2339 check-code: add 'no tab indent' check for unified tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 12643
diff changeset
30 > print '---- DATA'
4c4aeaab2339 check-code: add 'no tab indent' check for unified tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 12643
diff changeset
31 > return output.write
12439
31ea3ce83a92 tests: unify test-hgweb-no-request-uri
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
32 >
31ea3ce83a92 tests: unify test-hgweb-no-request-uri
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
33 > env = {
12743
4c4aeaab2339 check-code: add 'no tab indent' check for unified tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 12643
diff changeset
34 > 'wsgi.version': (1, 0),
4c4aeaab2339 check-code: add 'no tab indent' check for unified tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 12643
diff changeset
35 > 'wsgi.url_scheme': 'http',
4c4aeaab2339 check-code: add 'no tab indent' check for unified tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 12643
diff changeset
36 > 'wsgi.errors': errors,
4c4aeaab2339 check-code: add 'no tab indent' check for unified tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 12643
diff changeset
37 > 'wsgi.input': input,
4c4aeaab2339 check-code: add 'no tab indent' check for unified tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 12643
diff changeset
38 > 'wsgi.multithread': False,
4c4aeaab2339 check-code: add 'no tab indent' check for unified tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 12643
diff changeset
39 > 'wsgi.multiprocess': False,
4c4aeaab2339 check-code: add 'no tab indent' check for unified tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 12643
diff changeset
40 > 'wsgi.run_once': False,
4c4aeaab2339 check-code: add 'no tab indent' check for unified tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 12643
diff changeset
41 > 'REQUEST_METHOD': 'GET',
4c4aeaab2339 check-code: add 'no tab indent' check for unified tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 12643
diff changeset
42 > 'SCRIPT_NAME': '',
4c4aeaab2339 check-code: add 'no tab indent' check for unified tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 12643
diff changeset
43 > 'SERVER_NAME': '127.0.0.1',
4c4aeaab2339 check-code: add 'no tab indent' check for unified tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 12643
diff changeset
44 > 'SERVER_PORT': os.environ['HGPORT'],
4c4aeaab2339 check-code: add 'no tab indent' check for unified tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 12643
diff changeset
45 > 'SERVER_PROTOCOL': 'HTTP/1.0'
12439
31ea3ce83a92 tests: unify test-hgweb-no-request-uri
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
46 > }
31ea3ce83a92 tests: unify test-hgweb-no-request-uri
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
47 >
31ea3ce83a92 tests: unify test-hgweb-no-request-uri
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
48 > def process(app):
12743
4c4aeaab2339 check-code: add 'no tab indent' check for unified tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 12643
diff changeset
49 > content = app(env, startrsp)
4c4aeaab2339 check-code: add 'no tab indent' check for unified tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 12643
diff changeset
50 > sys.stdout.write(output.getvalue())
4c4aeaab2339 check-code: add 'no tab indent' check for unified tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 12643
diff changeset
51 > sys.stdout.write(''.join(content))
18646
c6a81e54c209 hgweb: make the test suite use hgweb in a more WSGI compliant way
Mads Kiilerich <mads@kiilerich.com>
parents: 16913
diff changeset
52 > getattr(content, 'close', lambda : None)()
12743
4c4aeaab2339 check-code: add 'no tab indent' check for unified tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 12643
diff changeset
53 > print '---- ERRORS'
4c4aeaab2339 check-code: add 'no tab indent' check for unified tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 12643
diff changeset
54 > print errors.getvalue()
12439
31ea3ce83a92 tests: unify test-hgweb-no-request-uri
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
55 >
31ea3ce83a92 tests: unify test-hgweb-no-request-uri
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
56 > output = StringIO()
31ea3ce83a92 tests: unify test-hgweb-no-request-uri
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
57 > env['PATH_INFO'] = '/'
31ea3ce83a92 tests: unify test-hgweb-no-request-uri
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
58 > env['QUERY_STRING'] = 'style=atom'
31ea3ce83a92 tests: unify test-hgweb-no-request-uri
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
59 > process(hgweb('.', name = 'repo'))
31ea3ce83a92 tests: unify test-hgweb-no-request-uri
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
60 >
31ea3ce83a92 tests: unify test-hgweb-no-request-uri
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
61 > output = StringIO()
31ea3ce83a92 tests: unify test-hgweb-no-request-uri
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
62 > env['PATH_INFO'] = '/file/tip/'
31ea3ce83a92 tests: unify test-hgweb-no-request-uri
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
63 > env['QUERY_STRING'] = 'style=raw'
31ea3ce83a92 tests: unify test-hgweb-no-request-uri
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
64 > process(hgweb('.', name = 'repo'))
31ea3ce83a92 tests: unify test-hgweb-no-request-uri
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
65 >
31ea3ce83a92 tests: unify test-hgweb-no-request-uri
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
66 > output = StringIO()
31ea3ce83a92 tests: unify test-hgweb-no-request-uri
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
67 > env['PATH_INFO'] = '/'
31ea3ce83a92 tests: unify test-hgweb-no-request-uri
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
68 > env['QUERY_STRING'] = 'style=raw'
31ea3ce83a92 tests: unify test-hgweb-no-request-uri
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
69 > process(hgwebdir({'repo': '.'}))
31ea3ce83a92 tests: unify test-hgweb-no-request-uri
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
70 >
31ea3ce83a92 tests: unify test-hgweb-no-request-uri
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
71 > output = StringIO()
31ea3ce83a92 tests: unify test-hgweb-no-request-uri
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
72 > env['PATH_INFO'] = '/repo/file/tip/'
31ea3ce83a92 tests: unify test-hgweb-no-request-uri
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
73 > env['QUERY_STRING'] = 'style=raw'
31ea3ce83a92 tests: unify test-hgweb-no-request-uri
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
74 > process(hgwebdir({'repo': '.'}))
31ea3ce83a92 tests: unify test-hgweb-no-request-uri
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
75 > EOF
31ea3ce83a92 tests: unify test-hgweb-no-request-uri
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
76 $ python request.py
31ea3ce83a92 tests: unify test-hgweb-no-request-uri
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
77 ---- STATUS
31ea3ce83a92 tests: unify test-hgweb-no-request-uri
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
78 200 Script output follows
31ea3ce83a92 tests: unify test-hgweb-no-request-uri
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
79 ---- HEADERS
31ea3ce83a92 tests: unify test-hgweb-no-request-uri
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
80 [('Content-Type', 'application/atom+xml; charset=ascii')]
31ea3ce83a92 tests: unify test-hgweb-no-request-uri
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
81 ---- DATA
31ea3ce83a92 tests: unify test-hgweb-no-request-uri
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
82 <?xml version="1.0" encoding="ascii"?>
31ea3ce83a92 tests: unify test-hgweb-no-request-uri
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
83 <feed xmlns="http://www.w3.org/2005/Atom">
31ea3ce83a92 tests: unify test-hgweb-no-request-uri
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
84 <!-- Changelog -->
12643
d08bb64888bc tests: reintroduce ":$HGPORT" in test output
Mads Kiilerich <mads@kiilerich.com>
parents: 12439
diff changeset
85 <id>http://127.0.0.1:$HGPORT/</id>
d08bb64888bc tests: reintroduce ":$HGPORT" in test output
Mads Kiilerich <mads@kiilerich.com>
parents: 12439
diff changeset
86 <link rel="self" href="http://127.0.0.1:$HGPORT/atom-log"/>
d08bb64888bc tests: reintroduce ":$HGPORT" in test output
Mads Kiilerich <mads@kiilerich.com>
parents: 12439
diff changeset
87 <link rel="alternate" href="http://127.0.0.1:$HGPORT/"/>
12439
31ea3ce83a92 tests: unify test-hgweb-no-request-uri
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
88 <title>repo Changelog</title>
31ea3ce83a92 tests: unify test-hgweb-no-request-uri
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
89 <updated>1970-01-01T00:00:00+00:00</updated>
31ea3ce83a92 tests: unify test-hgweb-no-request-uri
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
90
31ea3ce83a92 tests: unify test-hgweb-no-request-uri
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
91 <entry>
21056
d70703954a2a hgweb: adding branch, tags, bookmarks, user, and file list to atom feed entries
Aaron Jensen <ajensen@webmd.net>
parents: 18646
diff changeset
92 <title>[default] test</title>
12643
d08bb64888bc tests: reintroduce ":$HGPORT" in test output
Mads Kiilerich <mads@kiilerich.com>
parents: 12439
diff changeset
93 <id>http://127.0.0.1:$HGPORT/#changeset-61c9426e69fef294feed5e2bbfc97d39944a5b1c</id>
d08bb64888bc tests: reintroduce ":$HGPORT" in test output
Mads Kiilerich <mads@kiilerich.com>
parents: 12439
diff changeset
94 <link href="http://127.0.0.1:$HGPORT/rev/61c9426e69fe"/>
12439
31ea3ce83a92 tests: unify test-hgweb-no-request-uri
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
95 <author>
31ea3ce83a92 tests: unify test-hgweb-no-request-uri
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
96 <name>test</name>
31ea3ce83a92 tests: unify test-hgweb-no-request-uri
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
97 <email>&#116;&#101;&#115;&#116;</email>
31ea3ce83a92 tests: unify test-hgweb-no-request-uri
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
98 </author>
31ea3ce83a92 tests: unify test-hgweb-no-request-uri
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
99 <updated>1970-01-01T00:00:00+00:00</updated>
31ea3ce83a92 tests: unify test-hgweb-no-request-uri
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
100 <published>1970-01-01T00:00:00+00:00</published>
31ea3ce83a92 tests: unify test-hgweb-no-request-uri
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
101 <content type="xhtml">
21056
d70703954a2a hgweb: adding branch, tags, bookmarks, user, and file list to atom feed entries
Aaron Jensen <ajensen@webmd.net>
parents: 18646
diff changeset
102 <table xmlns="http://www.w3.org/1999/xhtml">
d70703954a2a hgweb: adding branch, tags, bookmarks, user, and file list to atom feed entries
Aaron Jensen <ajensen@webmd.net>
parents: 18646
diff changeset
103 <tr>
d70703954a2a hgweb: adding branch, tags, bookmarks, user, and file list to atom feed entries
Aaron Jensen <ajensen@webmd.net>
parents: 18646
diff changeset
104 <th style="text-align:left;">changeset</th>
d70703954a2a hgweb: adding branch, tags, bookmarks, user, and file list to atom feed entries
Aaron Jensen <ajensen@webmd.net>
parents: 18646
diff changeset
105 <td>61c9426e69fe</td>
21117
91eb605022f5 hgweb: adding branch names from inbranch template to atom feed
Aaron Jensen <ajensen@webmd.net>
parents: 21056
diff changeset
106 </tr>
91eb605022f5 hgweb: adding branch names from inbranch template to atom feed
Aaron Jensen <ajensen@webmd.net>
parents: 21056
diff changeset
107 <tr>
91eb605022f5 hgweb: adding branch names from inbranch template to atom feed
Aaron Jensen <ajensen@webmd.net>
parents: 21056
diff changeset
108 <th style="text-align:left;">branch</th>
91eb605022f5 hgweb: adding branch names from inbranch template to atom feed
Aaron Jensen <ajensen@webmd.net>
parents: 21056
diff changeset
109 <td>default</td>
91eb605022f5 hgweb: adding branch names from inbranch template to atom feed
Aaron Jensen <ajensen@webmd.net>
parents: 21056
diff changeset
110 </tr>
91eb605022f5 hgweb: adding branch names from inbranch template to atom feed
Aaron Jensen <ajensen@webmd.net>
parents: 21056
diff changeset
111 <tr>
91eb605022f5 hgweb: adding branch names from inbranch template to atom feed
Aaron Jensen <ajensen@webmd.net>
parents: 21056
diff changeset
112 <th style="text-align:left;">bookmark</th>
21056
d70703954a2a hgweb: adding branch, tags, bookmarks, user, and file list to atom feed entries
Aaron Jensen <ajensen@webmd.net>
parents: 18646
diff changeset
113 <td></td>
d70703954a2a hgweb: adding branch, tags, bookmarks, user, and file list to atom feed entries
Aaron Jensen <ajensen@webmd.net>
parents: 18646
diff changeset
114 </tr>
d70703954a2a hgweb: adding branch, tags, bookmarks, user, and file list to atom feed entries
Aaron Jensen <ajensen@webmd.net>
parents: 18646
diff changeset
115 <tr>
d70703954a2a hgweb: adding branch, tags, bookmarks, user, and file list to atom feed entries
Aaron Jensen <ajensen@webmd.net>
parents: 18646
diff changeset
116 <th style="text-align:left;">tag</th>
d70703954a2a hgweb: adding branch, tags, bookmarks, user, and file list to atom feed entries
Aaron Jensen <ajensen@webmd.net>
parents: 18646
diff changeset
117 <td>tip</td>
d70703954a2a hgweb: adding branch, tags, bookmarks, user, and file list to atom feed entries
Aaron Jensen <ajensen@webmd.net>
parents: 18646
diff changeset
118 </tr>
d70703954a2a hgweb: adding branch, tags, bookmarks, user, and file list to atom feed entries
Aaron Jensen <ajensen@webmd.net>
parents: 18646
diff changeset
119 <tr>
d70703954a2a hgweb: adding branch, tags, bookmarks, user, and file list to atom feed entries
Aaron Jensen <ajensen@webmd.net>
parents: 18646
diff changeset
120 <th style="text-align:left;">user</th>
d70703954a2a hgweb: adding branch, tags, bookmarks, user, and file list to atom feed entries
Aaron Jensen <ajensen@webmd.net>
parents: 18646
diff changeset
121 <td>&#116;&#101;&#115;&#116;</td>
d70703954a2a hgweb: adding branch, tags, bookmarks, user, and file list to atom feed entries
Aaron Jensen <ajensen@webmd.net>
parents: 18646
diff changeset
122 </tr>
d70703954a2a hgweb: adding branch, tags, bookmarks, user, and file list to atom feed entries
Aaron Jensen <ajensen@webmd.net>
parents: 18646
diff changeset
123 <tr>
d70703954a2a hgweb: adding branch, tags, bookmarks, user, and file list to atom feed entries
Aaron Jensen <ajensen@webmd.net>
parents: 18646
diff changeset
124 <th style="text-align:left;vertical-align:top;">description</th>
d70703954a2a hgweb: adding branch, tags, bookmarks, user, and file list to atom feed entries
Aaron Jensen <ajensen@webmd.net>
parents: 18646
diff changeset
125 <td>test</td>
d70703954a2a hgweb: adding branch, tags, bookmarks, user, and file list to atom feed entries
Aaron Jensen <ajensen@webmd.net>
parents: 18646
diff changeset
126 </tr>
d70703954a2a hgweb: adding branch, tags, bookmarks, user, and file list to atom feed entries
Aaron Jensen <ajensen@webmd.net>
parents: 18646
diff changeset
127 <tr>
d70703954a2a hgweb: adding branch, tags, bookmarks, user, and file list to atom feed entries
Aaron Jensen <ajensen@webmd.net>
parents: 18646
diff changeset
128 <th style="text-align:left;vertical-align:top;">files</th>
d70703954a2a hgweb: adding branch, tags, bookmarks, user, and file list to atom feed entries
Aaron Jensen <ajensen@webmd.net>
parents: 18646
diff changeset
129 <td>bar<br /></td>
d70703954a2a hgweb: adding branch, tags, bookmarks, user, and file list to atom feed entries
Aaron Jensen <ajensen@webmd.net>
parents: 18646
diff changeset
130 </tr>
d70703954a2a hgweb: adding branch, tags, bookmarks, user, and file list to atom feed entries
Aaron Jensen <ajensen@webmd.net>
parents: 18646
diff changeset
131 </table>
12439
31ea3ce83a92 tests: unify test-hgweb-no-request-uri
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
132 </content>
31ea3ce83a92 tests: unify test-hgweb-no-request-uri
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
133 </entry>
31ea3ce83a92 tests: unify test-hgweb-no-request-uri
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
134
31ea3ce83a92 tests: unify test-hgweb-no-request-uri
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
135 </feed>
31ea3ce83a92 tests: unify test-hgweb-no-request-uri
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
136 ---- ERRORS
31ea3ce83a92 tests: unify test-hgweb-no-request-uri
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
137
31ea3ce83a92 tests: unify test-hgweb-no-request-uri
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
138 ---- STATUS
31ea3ce83a92 tests: unify test-hgweb-no-request-uri
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
139 200 Script output follows
31ea3ce83a92 tests: unify test-hgweb-no-request-uri
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
140 ---- HEADERS
31ea3ce83a92 tests: unify test-hgweb-no-request-uri
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
141 [('Content-Type', 'text/plain; charset=ascii')]
31ea3ce83a92 tests: unify test-hgweb-no-request-uri
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
142 ---- DATA
31ea3ce83a92 tests: unify test-hgweb-no-request-uri
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
143
31ea3ce83a92 tests: unify test-hgweb-no-request-uri
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
144 -rw-r--r-- 4 bar
31ea3ce83a92 tests: unify test-hgweb-no-request-uri
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
145
31ea3ce83a92 tests: unify test-hgweb-no-request-uri
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
146
31ea3ce83a92 tests: unify test-hgweb-no-request-uri
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
147 ---- ERRORS
31ea3ce83a92 tests: unify test-hgweb-no-request-uri
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
148
31ea3ce83a92 tests: unify test-hgweb-no-request-uri
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
149 ---- STATUS
31ea3ce83a92 tests: unify test-hgweb-no-request-uri
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
150 200 Script output follows
31ea3ce83a92 tests: unify test-hgweb-no-request-uri
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
151 ---- HEADERS
31ea3ce83a92 tests: unify test-hgweb-no-request-uri
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
152 [('Content-Type', 'text/plain; charset=ascii')]
31ea3ce83a92 tests: unify test-hgweb-no-request-uri
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
153 ---- DATA
31ea3ce83a92 tests: unify test-hgweb-no-request-uri
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
154
31ea3ce83a92 tests: unify test-hgweb-no-request-uri
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
155 /repo/
31ea3ce83a92 tests: unify test-hgweb-no-request-uri
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
156
31ea3ce83a92 tests: unify test-hgweb-no-request-uri
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
157 ---- ERRORS
31ea3ce83a92 tests: unify test-hgweb-no-request-uri
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
158
31ea3ce83a92 tests: unify test-hgweb-no-request-uri
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
159 ---- STATUS
31ea3ce83a92 tests: unify test-hgweb-no-request-uri
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
160 200 Script output follows
31ea3ce83a92 tests: unify test-hgweb-no-request-uri
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
161 ---- HEADERS
31ea3ce83a92 tests: unify test-hgweb-no-request-uri
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
162 [('Content-Type', 'text/plain; charset=ascii')]
31ea3ce83a92 tests: unify test-hgweb-no-request-uri
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
163 ---- DATA
31ea3ce83a92 tests: unify test-hgweb-no-request-uri
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
164
31ea3ce83a92 tests: unify test-hgweb-no-request-uri
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
165 -rw-r--r-- 4 bar
31ea3ce83a92 tests: unify test-hgweb-no-request-uri
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
166
31ea3ce83a92 tests: unify test-hgweb-no-request-uri
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
167
31ea3ce83a92 tests: unify test-hgweb-no-request-uri
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
168 ---- ERRORS
31ea3ce83a92 tests: unify test-hgweb-no-request-uri
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
169
16913
f2719b387380 tests: add missing trailing 'cd ..'
Mads Kiilerich <mads@kiilerich.com>
parents: 13956
diff changeset
170
f2719b387380 tests: add missing trailing 'cd ..'
Mads Kiilerich <mads@kiilerich.com>
parents: 13956
diff changeset
171 $ cd ..