Mercurial > hg
view tests/test-hgweb-symrev.t @ 51681:522b4d729e89
mmap: populate the mapping by default
Without pre-population, accessing all data through a mmap can result in many
pagefault, reducing performance significantly. If the mmap is prepopulated, the
performance can no longer get slower than a full read.
(See benchmark number below)
In some cases were very few data is read, prepopulating can be overkill and
slower than populating on access (through page fault). So that behavior can be
controlled when the caller can pre-determine the best behavior.
(See benchmark number below)
In addition, testing with populating in a secondary thread yield great result
combining the best of each approach. This might be implemented in later
changesets.
In all cases, using mmap has a great effect on memory usage when many processes
run in parallel on the same machine.
### Benchmarks
# What did I run
A couple of month back I ran a large benchmark campaign to assess the impact of
various approach for using mmap with the revlog (and other files), it
highlighted a few benchmarks that capture the impact of the changes well. So to
validate this change I checked the following:
- log command displaying various revisions
(read the changelog index)
- log command displaying the patch of listed revisions
(read the changelog index, the manifest index and a few files indexes)
- unbundling a few revisions
(read and write changelog, manifest and few files indexes, and walk the graph
to update some cache)
- pushing a few revisions
(read and write changelog, manifest and few files indexes, walk the graph to
update some cache, performs various accesses locally and remotely during
discovery)
Benchmarks were run using the default module policy (c+py) and the rust one. No
significant difference were found between the two implementation, so we will
present result using the default policy (unless otherwise specified).
I ran them on a few repositories :
- mercurial: a "public changeset only" copy of mercurial from 2018-08-01 using
zstd compression and sparse-revlog
- pypy: a copy of pypy from 2018-08-01 using zstd compression and sparse-revlog
- netbeans: a copy of netbeans from 2018-08-01 using zstd compression and
sparse-revlog
- mozilla-try: a copy of mozilla-try from 2019-02-18 using zstd compression and
sparse-revlog
- mozilla-try persistent-nodemap: Same as the above but with a persistent
nodemap. Used for the log --patch benchmark only
# Results
For the smaller repositories (mercurial, pypy), the impact of mmap is almost
imperceptible, other cost dominating the operation. The impact of prepopulating
is undiscernible in the benchmark we ran.
For larger repositories the benchmark support explanation given above:
On netbeans, the log can be about 1% faster without repopulation (for a
difference < 100ms) but unbundle becomes a bit slower, even when small.
### data-env-vars.name = netbeans-2018-08-01-zstd-sparse-revlog
# benchmark.name = hg.command.unbundle
# benchmark.variants.issue6528 = disabled
# benchmark.variants.reuse-external-delta-parent = yes
# benchmark.variants.revs = any-1-extra-rev
# benchmark.variants.source = unbundle
# benchmark.variants.verbosity = quiet
with-populate: 0.240157
no-populate: 0.265087 (+10.38%, +0.02)
# benchmark.variants.revs = any-100-extra-rev
with-populate: 1.459518
no-populate: 1.481290 (+1.49%, +0.02)
## benchmark.name = hg.command.push
# benchmark.variants.explicit-rev = none
# benchmark.variants.issue6528 = disabled
# benchmark.variants.protocol = ssh
# benchmark.variants.reuse-external-delta-parent = yes
# benchmark.variants.revs = any-1-extra-rev
with-populate: 0.771919
no-populate: 0.792025 (+2.60%, +0.02)
# benchmark.variants.revs = any-100-extra-rev
with-populate: 1.459518
no-populate: 1.481290 (+1.49%, +0.02)
For mozilla-try, the "slow down" from pre-populate for small `hg log` is more
visible, but still small in absolute time. (using rust value for the persistent
nodemap value to be relevant).
### data-env-vars.name = mozilla-try-2019-02-18-ds2-pnm
# benchmark.name = hg.command.log
# bin-env-vars.hg.flavor = rust
# benchmark.variants.patch = yes
# benchmark.variants.limit-rev = 1
with-populate: 0.237813
no-populate: 0.229452 (-3.52%, -0.01)
# benchmark.variants.limit-rev = 10
# benchmark.variants.patch = yes
with-populate: 1.213578
no-populate: 1.205189
### data-env-vars.name = mozilla-try-2019-02-18-zstd-sparse-revlog
# benchmark.variants.limit-rev = 1000
# benchmark.variants.patch = no
# benchmark.variants.rev = tip
with-populate: 0.198607
no-populate: 0.195038 (-1.80%, -0.00)
However pre-populating provide a significant boost on more complex operations
like unbundle or push:
### data-env-vars.name = mozilla-try-2019-02-18-zstd-sparse-revlog
# benchmark.name = hg.command.push
# benchmark.variants.explicit-rev = none
# benchmark.variants.issue6528 = disabled
# benchmark.variants.protocol = ssh
# benchmark.variants.reuse-external-delta-parent = yes
# benchmark.variants.revs = any-1-extra-rev
with-populate: 4.798632
no-populate: 4.953295 (+3.22%, +0.15)
# benchmark.variants.revs = any-100-extra-rev
with-populate: 4.903618
no-populate: 5.014963 (+2.27%, +0.11)
## benchmark.name = hg.command.unbundle
# benchmark.variants.revs = any-1-extra-rev
with-populate: 1.423411
no-populate: 1.585365 (+11.38%, +0.16)
# benchmark.variants.revs = any-100-extra-rev
with-populate: 1.537909
no-populate: 1.688489 (+9.79%, +0.15)
author | Pierre-Yves David <pierre-yves.david@octobus.net> |
---|---|
date | Thu, 11 Apr 2024 00:02:07 +0200 |
parents | 7e5be4a7cda7 |
children |
line wrap: on
line source
#require serve Test symbolic revision usage in links produced by hgweb pages. There are multiple issues related to this: - issue2296 - issue2826 - issue3594 - issue3634 Set up the repo $ hg init test $ cd test $ echo 0 > foo $ mkdir dir $ echo 0 > dir/bar $ hg ci -Am 'first' adding dir/bar adding foo $ echo 1 >> foo $ hg ci -m 'second' $ echo 2 >> foo $ hg ci -m 'third' $ hg bookmark -r1 xyzzy $ hg log -G --template '{rev}:{node|short} {tags} {bookmarks}\n' @ 2:9d8c40cba617 tip | o 1:a7c1559b7bba xyzzy | o 0:43c799df6e75 $ hg serve --config web.allow-archive=zip -n test -p $HGPORT -d --pid-file=hg.pid -E errors.log $ cat hg.pid >> $DAEMON_PIDS $ REVLINKS='href=[^>]+(rev=|/)(43c799df6e75|0|a7c1559b7bba|1|xyzzy|9d8c40cba617|2|tip|default)' (De)referencing symbolic revisions (paper) $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'shortlog?style=paper' | grep -E $REVLINKS <li><a href="/graph/tip?style=paper">graph</a></li> <li><a href="/rev/tip?style=paper">changeset</a></li> <li><a href="/file/tip?style=paper">browse</a></li> <a href="/archive/tip.zip">zip</a> <a href="/shortlog/tip?revcount=30&style=paper">less</a> <a href="/shortlog/tip?revcount=120&style=paper">more</a> | rev 2: <a href="/shortlog/43c799df6e75?style=paper">(0)</a> <a href="/shortlog/tip?style=paper">tip</a> <a href="/rev/9d8c40cba617?style=paper">third</a> <a href="/rev/a7c1559b7bba?style=paper">second</a> <a href="/rev/43c799df6e75?style=paper">first</a> <a href="/shortlog/tip?revcount=30&style=paper">less</a> <a href="/shortlog/tip?revcount=120&style=paper">more</a> | rev 2: <a href="/shortlog/43c799df6e75?style=paper">(0)</a> <a href="/shortlog/tip?style=paper">tip</a> $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'graph?style=paper' | grep -E $REVLINKS <li><a href="/shortlog/tip?style=paper">log</a></li> <li><a href="/rev/tip?style=paper">changeset</a></li> <li><a href="/file/tip?style=paper">browse</a></li> <a href="/archive/tip.zip">zip</a> <a href="/graph/tip?revcount=30&style=paper">less</a> <a href="/graph/tip?revcount=120&style=paper">more</a> | rev 2: <a href="/graph/43c799df6e75?style=paper">(0)</a> <a href="/graph/tip?style=paper">tip</a> <a href="/rev/9d8c40cba617?style=paper">third</a> <a href="/rev/a7c1559b7bba?style=paper">second</a> <a href="/rev/43c799df6e75?style=paper">first</a> <a href="/graph/tip?revcount=30&style=paper">less</a> <a href="/graph/tip?revcount=120&style=paper">more</a> | rev 2: <a href="/graph/43c799df6e75?style=paper">(0)</a> <a href="/graph/tip?style=paper">tip</a> $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'file?style=paper' | grep -E $REVLINKS <li><a href="/shortlog/tip?style=paper">log</a></li> <li><a href="/graph/tip?style=paper">graph</a></li> <li><a href="/rev/tip?style=paper">changeset</a></li> <a href="/archive/tip.zip">zip</a> directory / @ 2:<a href="/rev/9d8c40cba617?style=paper">9d8c40cba617</a> <a href="/file/tip/dir?style=paper"> <a href="/file/tip/dir/?style=paper"> <a href="/file/tip/foo?style=paper"> $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'branches?style=paper' | grep -E $REVLINKS <a href="/shortlog/default?style=paper" class="open"> <a href="/shortlog/9d8c40cba617?style=paper" class="open"> $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'tags?style=paper' | grep -E $REVLINKS <a href="/rev/tip?style=paper"> <a href="/rev/9d8c40cba617?style=paper"> $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'bookmarks?style=paper' | grep -E $REVLINKS <a href="/rev/xyzzy?style=paper"> <a href="/rev/a7c1559b7bba?style=paper"> $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'shortlog?style=paper&rev=all()' | grep -E $REVLINKS <a href="/rev/9d8c40cba617?style=paper">third</a> <a href="/rev/a7c1559b7bba?style=paper">second</a> <a href="/rev/43c799df6e75?style=paper">first</a> $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'rev/xyzzy?style=paper' | grep -E $REVLINKS <li><a href="/shortlog/xyzzy?style=paper">log</a></li> <li><a href="/graph/xyzzy?style=paper">graph</a></li> <li><a href="/raw-rev/xyzzy?style=paper">raw</a></li> <li><a href="/file/xyzzy?style=paper">browse</a></li> <a href="/archive/xyzzy.zip">zip</a> changeset 1:<a href="/rev/a7c1559b7bba?style=paper">a7c1559b7bba</a> <td class="author"><a href="/rev/43c799df6e75?style=paper">43c799df6e75</a> </td> <td class="author"> <a href="/rev/9d8c40cba617?style=paper">9d8c40cba617</a></td> <td class="files"><a href="/file/a7c1559b7bba/foo?style=paper">foo</a> </td> $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'shortlog/xyzzy?style=paper' | grep -E $REVLINKS <li><a href="/graph/xyzzy?style=paper">graph</a></li> <li><a href="/rev/xyzzy?style=paper">changeset</a></li> <li><a href="/file/xyzzy?style=paper">browse</a></li> <a href="/archive/xyzzy.zip">zip</a> <a href="/shortlog/xyzzy?revcount=30&style=paper">less</a> <a href="/shortlog/xyzzy?revcount=120&style=paper">more</a> | rev 1: <a href="/shortlog/43c799df6e75?style=paper">(0)</a> <a href="/shortlog/tip?style=paper">tip</a> <a href="/rev/a7c1559b7bba?style=paper">second</a> <a href="/rev/43c799df6e75?style=paper">first</a> <a href="/shortlog/xyzzy?revcount=30&style=paper">less</a> <a href="/shortlog/xyzzy?revcount=120&style=paper">more</a> | rev 1: <a href="/shortlog/43c799df6e75?style=paper">(0)</a> <a href="/shortlog/tip?style=paper">tip</a> $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'graph/xyzzy?style=paper' | grep -E $REVLINKS <li><a href="/shortlog/xyzzy?style=paper">log</a></li> <li><a href="/rev/xyzzy?style=paper">changeset</a></li> <li><a href="/file/xyzzy?style=paper">browse</a></li> <a href="/archive/xyzzy.zip">zip</a> <a href="/graph/xyzzy?revcount=30&style=paper">less</a> <a href="/graph/xyzzy?revcount=120&style=paper">more</a> | rev 1: <a href="/graph/43c799df6e75?style=paper">(0)</a> <a href="/graph/tip?style=paper">tip</a> <a href="/rev/a7c1559b7bba?style=paper">second</a> <a href="/rev/43c799df6e75?style=paper">first</a> <a href="/graph/xyzzy?revcount=30&style=paper">less</a> <a href="/graph/xyzzy?revcount=120&style=paper">more</a> | rev 1: <a href="/graph/43c799df6e75?style=paper">(0)</a> <a href="/graph/tip?style=paper">tip</a> $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'file/xyzzy?style=paper' | grep -E $REVLINKS <li><a href="/shortlog/xyzzy?style=paper">log</a></li> <li><a href="/graph/xyzzy?style=paper">graph</a></li> <li><a href="/rev/xyzzy?style=paper">changeset</a></li> <a href="/archive/xyzzy.zip">zip</a> directory / @ 1:<a href="/rev/a7c1559b7bba?style=paper">a7c1559b7bba</a> <a href="/file/xyzzy/dir?style=paper"> <a href="/file/xyzzy/dir/?style=paper"> <a href="/file/xyzzy/foo?style=paper"> $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'file/xyzzy/foo?style=paper' | grep -E $REVLINKS <li><a href="/shortlog/xyzzy?style=paper">log</a></li> <li><a href="/graph/xyzzy?style=paper">graph</a></li> <li><a href="/rev/xyzzy?style=paper">changeset</a></li> <li><a href="/file/xyzzy/?style=paper">browse</a></li> <li><a href="/file/tip/foo?style=paper">latest</a></li> <li><a href="/diff/xyzzy/foo?style=paper">diff</a></li> <li><a href="/comparison/xyzzy/foo?style=paper">comparison</a></li> <li><a href="/annotate/xyzzy/foo?style=paper">annotate</a></li> <li><a href="/log/xyzzy/foo?style=paper">file log</a></li> <li><a href="/raw-file/xyzzy/foo">raw</a></li> view foo @ 1:<a href="/rev/a7c1559b7bba?style=paper">a7c1559b7bba</a> <td class="author"><a href="/file/43c799df6e75/foo?style=paper">43c799df6e75</a> </td> <td class="author"><a href="/file/9d8c40cba617/foo?style=paper">9d8c40cba617</a> </td> $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'log/xyzzy/foo?style=paper' | grep -E $REVLINKS href="/atom-log/tip/foo" title="Atom feed for test:foo" /> href="/rss-log/tip/foo" title="RSS feed for test:foo" /> <li><a href="/shortlog/xyzzy?style=paper">log</a></li> <li><a href="/graph/xyzzy?style=paper">graph</a></li> <li><a href="/rev/xyzzy?style=paper">changeset</a></li> <li><a href="/file/xyzzy?style=paper">browse</a></li> <li><a href="/file/xyzzy/foo?style=paper">file</a></li> <li><a href="/diff/xyzzy/foo?style=paper">diff</a></li> <li><a href="/comparison/xyzzy/foo?style=paper">comparison</a></li> <li><a href="/annotate/xyzzy/foo?style=paper">annotate</a></li> <li><a href="/raw-file/xyzzy/foo">raw</a></li> <a href="/atom-log/tip/foo" title="subscribe to atom feed"> log foo @ 1:<a href="/rev/a7c1559b7bba?style=paper">a7c1559b7bba</a> <a href="/log/xyzzy/foo?revcount=30&style=paper">less</a> <a href="/log/xyzzy/foo?revcount=120&style=paper">more</a> | <a href="/log/43c799df6e75/foo?style=paper">(0)</a> <a href="/log/tip/foo?style=paper">tip</a> </div> <a href="/rev/a7c1559b7bba?style=paper">second</a> <a href="/rev/43c799df6e75?style=paper">first</a> <a href="/log/xyzzy/foo?revcount=30&style=paper">less</a> <a href="/log/xyzzy/foo?revcount=120&style=paper">more</a> | <a href="/log/43c799df6e75/foo?style=paper">(0)</a> <a href="/log/tip/foo?style=paper">tip</a> $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'annotate/xyzzy/foo?style=paper' | grep -E $REVLINKS <li><a href="/shortlog/xyzzy?style=paper">log</a></li> <li><a href="/graph/xyzzy?style=paper">graph</a></li> <li><a href="/rev/xyzzy?style=paper">changeset</a></li> <li><a href="/file/xyzzy/?style=paper">browse</a></li> <li><a href="/file/xyzzy/foo?style=paper">file</a></li> <li><a href="/file/tip/foo?style=paper">latest</a></li> <li><a href="/diff/xyzzy/foo?style=paper">diff</a></li> <li><a href="/comparison/xyzzy/foo?style=paper">comparison</a></li> <li><a href="/log/xyzzy/foo?style=paper">file log</a></li> <li><a href="/raw-file/xyzzy/foo">raw</a></li> annotate foo @ 1:<a href="/rev/a7c1559b7bba?style=paper">a7c1559b7bba</a> <td class="author"><a href="/file/43c799df6e75/foo?style=paper">43c799df6e75</a> </td> <td class="author"><a href="/file/9d8c40cba617/foo?style=paper">9d8c40cba617</a> </td> <a href="/annotate/43c799df6e75/foo?style=paper#l1"> <a href="/annotate/43c799df6e75/foo?style=paper#l1"> <a href="/diff/43c799df6e75/foo?style=paper">diff</a> <a href="/rev/43c799df6e75?style=paper">changeset</a> <a href="/annotate/a7c1559b7bba/foo?style=paper#l2"> <a href="/annotate/a7c1559b7bba/foo?style=paper#l2"> <a href="/annotate/43c799df6e75/foo?style=paper">0</a></div> <a href="/diff/a7c1559b7bba/foo?style=paper">diff</a> <a href="/rev/a7c1559b7bba?style=paper">changeset</a> $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'diff/xyzzy/foo?style=paper' | grep -E $REVLINKS <li><a href="/shortlog/xyzzy?style=paper">log</a></li> <li><a href="/graph/xyzzy?style=paper">graph</a></li> <li><a href="/rev/xyzzy?style=paper">changeset</a></li> <li><a href="/file/xyzzy?style=paper">browse</a></li> <li><a href="/file/xyzzy/foo?style=paper">file</a></li> <li><a href="/file/tip/foo?style=paper">latest</a></li> <li><a href="/comparison/xyzzy/foo?style=paper">comparison</a></li> <li><a href="/annotate/xyzzy/foo?style=paper">annotate</a></li> <li><a href="/log/xyzzy/foo?style=paper">file log</a></li> <li><a href="/raw-file/xyzzy/foo">raw</a></li> diff foo @ 1:<a href="/rev/a7c1559b7bba?style=paper">a7c1559b7bba</a> <td><a href="/file/43c799df6e75/foo?style=paper">43c799df6e75</a> </td> <td><a href="/file/9d8c40cba617/foo?style=paper">9d8c40cba617</a> </td> $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'comparison/xyzzy/foo?style=paper' | grep -E $REVLINKS <li><a href="/shortlog/xyzzy?style=paper">log</a></li> <li><a href="/graph/xyzzy?style=paper">graph</a></li> <li><a href="/rev/xyzzy?style=paper">changeset</a></li> <li><a href="/file/xyzzy?style=paper">browse</a></li> <li><a href="/file/xyzzy/foo?style=paper">file</a></li> <li><a href="/file/tip/foo?style=paper">latest</a></li> <li><a href="/diff/xyzzy/foo?style=paper">diff</a></li> <li><a href="/annotate/xyzzy/foo?style=paper">annotate</a></li> <li><a href="/log/xyzzy/foo?style=paper">file log</a></li> <li><a href="/raw-file/xyzzy/foo">raw</a></li> comparison foo @ 1:<a href="/rev/a7c1559b7bba?style=paper">a7c1559b7bba</a> <td><a href="/file/43c799df6e75/foo?style=paper">43c799df6e75</a> </td> <td><a href="/file/9d8c40cba617/foo?style=paper">9d8c40cba617</a> </td> (De)referencing symbolic revisions (coal) $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'shortlog?style=coal' | grep -E $REVLINKS <li><a href="/graph/tip?style=coal">graph</a></li> <li><a href="/rev/tip?style=coal">changeset</a></li> <li><a href="/file/tip?style=coal">browse</a></li> <a href="/archive/tip.zip">zip</a> <a href="/shortlog/tip?revcount=30&style=coal">less</a> <a href="/shortlog/tip?revcount=120&style=coal">more</a> | rev 2: <a href="/shortlog/43c799df6e75?style=coal">(0)</a> <a href="/shortlog/tip?style=coal">tip</a> <a href="/rev/9d8c40cba617?style=coal">third</a> <a href="/rev/a7c1559b7bba?style=coal">second</a> <a href="/rev/43c799df6e75?style=coal">first</a> <a href="/shortlog/tip?revcount=30&style=coal">less</a> <a href="/shortlog/tip?revcount=120&style=coal">more</a> | rev 2: <a href="/shortlog/43c799df6e75?style=coal">(0)</a> <a href="/shortlog/tip?style=coal">tip</a> $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'graph?style=coal' | grep -E $REVLINKS <li><a href="/shortlog/tip?style=coal">log</a></li> <li><a href="/rev/tip?style=coal">changeset</a></li> <li><a href="/file/tip?style=coal">browse</a></li> <a href="/archive/tip.zip">zip</a> <a href="/graph/tip?revcount=30&style=coal">less</a> <a href="/graph/tip?revcount=120&style=coal">more</a> | rev 2: <a href="/graph/43c799df6e75?style=coal">(0)</a> <a href="/graph/tip?style=coal">tip</a> <a href="/rev/9d8c40cba617?style=coal">third</a> <a href="/rev/a7c1559b7bba?style=coal">second</a> <a href="/rev/43c799df6e75?style=coal">first</a> <a href="/graph/tip?revcount=30&style=coal">less</a> <a href="/graph/tip?revcount=120&style=coal">more</a> | rev 2: <a href="/graph/43c799df6e75?style=coal">(0)</a> <a href="/graph/tip?style=coal">tip</a> $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'file?style=coal' | grep -E $REVLINKS <li><a href="/shortlog/tip?style=coal">log</a></li> <li><a href="/graph/tip?style=coal">graph</a></li> <li><a href="/rev/tip?style=coal">changeset</a></li> <a href="/archive/tip.zip">zip</a> directory / @ 2:<a href="/rev/9d8c40cba617?style=coal">9d8c40cba617</a> <a href="/file/tip/dir?style=coal"> <a href="/file/tip/dir/?style=coal"> <a href="/file/tip/foo?style=coal"> $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'branches?style=coal' | grep -E $REVLINKS <a href="/shortlog/default?style=coal" class="open"> <a href="/shortlog/9d8c40cba617?style=coal" class="open"> $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'tags?style=coal' | grep -E $REVLINKS <a href="/rev/tip?style=coal"> <a href="/rev/9d8c40cba617?style=coal"> $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'bookmarks?style=coal' | grep -E $REVLINKS <a href="/rev/xyzzy?style=coal"> <a href="/rev/a7c1559b7bba?style=coal"> $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'shortlog?style=coal&rev=all()' | grep -E $REVLINKS <a href="/rev/9d8c40cba617?style=coal">third</a> <a href="/rev/a7c1559b7bba?style=coal">second</a> <a href="/rev/43c799df6e75?style=coal">first</a> $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'rev/xyzzy?style=coal' | grep -E $REVLINKS <li><a href="/shortlog/xyzzy?style=coal">log</a></li> <li><a href="/graph/xyzzy?style=coal">graph</a></li> <li><a href="/raw-rev/xyzzy?style=coal">raw</a></li> <li><a href="/file/xyzzy?style=coal">browse</a></li> <a href="/archive/xyzzy.zip">zip</a> changeset 1:<a href="/rev/a7c1559b7bba?style=coal">a7c1559b7bba</a> <td class="author"><a href="/rev/43c799df6e75?style=coal">43c799df6e75</a> </td> <td class="author"> <a href="/rev/9d8c40cba617?style=coal">9d8c40cba617</a></td> <td class="files"><a href="/file/a7c1559b7bba/foo?style=coal">foo</a> </td> $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'shortlog/xyzzy?style=coal' | grep -E $REVLINKS <li><a href="/graph/xyzzy?style=coal">graph</a></li> <li><a href="/rev/xyzzy?style=coal">changeset</a></li> <li><a href="/file/xyzzy?style=coal">browse</a></li> <a href="/archive/xyzzy.zip">zip</a> <a href="/shortlog/xyzzy?revcount=30&style=coal">less</a> <a href="/shortlog/xyzzy?revcount=120&style=coal">more</a> | rev 1: <a href="/shortlog/43c799df6e75?style=coal">(0)</a> <a href="/shortlog/tip?style=coal">tip</a> <a href="/rev/a7c1559b7bba?style=coal">second</a> <a href="/rev/43c799df6e75?style=coal">first</a> <a href="/shortlog/xyzzy?revcount=30&style=coal">less</a> <a href="/shortlog/xyzzy?revcount=120&style=coal">more</a> | rev 1: <a href="/shortlog/43c799df6e75?style=coal">(0)</a> <a href="/shortlog/tip?style=coal">tip</a> $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'graph/xyzzy?style=coal' | grep -E $REVLINKS <li><a href="/shortlog/xyzzy?style=coal">log</a></li> <li><a href="/rev/xyzzy?style=coal">changeset</a></li> <li><a href="/file/xyzzy?style=coal">browse</a></li> <a href="/archive/xyzzy.zip">zip</a> <a href="/graph/xyzzy?revcount=30&style=coal">less</a> <a href="/graph/xyzzy?revcount=120&style=coal">more</a> | rev 1: <a href="/graph/43c799df6e75?style=coal">(0)</a> <a href="/graph/tip?style=coal">tip</a> <a href="/rev/a7c1559b7bba?style=coal">second</a> <a href="/rev/43c799df6e75?style=coal">first</a> <a href="/graph/xyzzy?revcount=30&style=coal">less</a> <a href="/graph/xyzzy?revcount=120&style=coal">more</a> | rev 1: <a href="/graph/43c799df6e75?style=coal">(0)</a> <a href="/graph/tip?style=coal">tip</a> $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'file/xyzzy?style=coal' | grep -E $REVLINKS <li><a href="/shortlog/xyzzy?style=coal">log</a></li> <li><a href="/graph/xyzzy?style=coal">graph</a></li> <li><a href="/rev/xyzzy?style=coal">changeset</a></li> <a href="/archive/xyzzy.zip">zip</a> directory / @ 1:<a href="/rev/a7c1559b7bba?style=coal">a7c1559b7bba</a> <a href="/file/xyzzy/dir?style=coal"> <a href="/file/xyzzy/dir/?style=coal"> <a href="/file/xyzzy/foo?style=coal"> $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'file/xyzzy/foo?style=coal' | grep -E $REVLINKS <li><a href="/shortlog/xyzzy?style=coal">log</a></li> <li><a href="/graph/xyzzy?style=coal">graph</a></li> <li><a href="/rev/xyzzy?style=coal">changeset</a></li> <li><a href="/file/xyzzy/?style=coal">browse</a></li> <li><a href="/file/tip/foo?style=coal">latest</a></li> <li><a href="/diff/xyzzy/foo?style=coal">diff</a></li> <li><a href="/comparison/xyzzy/foo?style=coal">comparison</a></li> <li><a href="/annotate/xyzzy/foo?style=coal">annotate</a></li> <li><a href="/log/xyzzy/foo?style=coal">file log</a></li> <li><a href="/raw-file/xyzzy/foo">raw</a></li> view foo @ 1:<a href="/rev/a7c1559b7bba?style=coal">a7c1559b7bba</a> <td class="author"><a href="/file/43c799df6e75/foo?style=coal">43c799df6e75</a> </td> <td class="author"><a href="/file/9d8c40cba617/foo?style=coal">9d8c40cba617</a> </td> $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'log/xyzzy/foo?style=coal' | grep -E $REVLINKS href="/atom-log/tip/foo" title="Atom feed for test:foo" /> href="/rss-log/tip/foo" title="RSS feed for test:foo" /> <li><a href="/shortlog/xyzzy?style=coal">log</a></li> <li><a href="/graph/xyzzy?style=coal">graph</a></li> <li><a href="/rev/xyzzy?style=coal">changeset</a></li> <li><a href="/file/xyzzy?style=coal">browse</a></li> <li><a href="/file/xyzzy/foo?style=coal">file</a></li> <li><a href="/diff/xyzzy/foo?style=coal">diff</a></li> <li><a href="/comparison/xyzzy/foo?style=coal">comparison</a></li> <li><a href="/annotate/xyzzy/foo?style=coal">annotate</a></li> <li><a href="/raw-file/xyzzy/foo">raw</a></li> <a href="/atom-log/tip/foo" title="subscribe to atom feed"> log foo @ 1:<a href="/rev/a7c1559b7bba?style=coal">a7c1559b7bba</a> <a href="/log/xyzzy/foo?revcount=30&style=coal">less</a> <a href="/log/xyzzy/foo?revcount=120&style=coal">more</a> | <a href="/log/43c799df6e75/foo?style=coal">(0)</a> <a href="/log/tip/foo?style=coal">tip</a> </div> <a href="/rev/a7c1559b7bba?style=coal">second</a> <a href="/rev/43c799df6e75?style=coal">first</a> <a href="/log/xyzzy/foo?revcount=30&style=coal">less</a> <a href="/log/xyzzy/foo?revcount=120&style=coal">more</a> | <a href="/log/43c799df6e75/foo?style=coal">(0)</a> <a href="/log/tip/foo?style=coal">tip</a> $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'annotate/xyzzy/foo?style=coal' | grep -E $REVLINKS <li><a href="/shortlog/xyzzy?style=coal">log</a></li> <li><a href="/graph/xyzzy?style=coal">graph</a></li> <li><a href="/rev/xyzzy?style=coal">changeset</a></li> <li><a href="/file/xyzzy/?style=coal">browse</a></li> <li><a href="/file/xyzzy/foo?style=coal">file</a></li> <li><a href="/file/tip/foo?style=coal">latest</a></li> <li><a href="/diff/xyzzy/foo?style=coal">diff</a></li> <li><a href="/comparison/xyzzy/foo?style=coal">comparison</a></li> <li><a href="/log/xyzzy/foo?style=coal">file log</a></li> <li><a href="/raw-file/xyzzy/foo">raw</a></li> annotate foo @ 1:<a href="/rev/a7c1559b7bba?style=coal">a7c1559b7bba</a> <td class="author"><a href="/file/43c799df6e75/foo?style=coal">43c799df6e75</a> </td> <td class="author"><a href="/file/9d8c40cba617/foo?style=coal">9d8c40cba617</a> </td> <a href="/annotate/43c799df6e75/foo?style=coal#l1"> <a href="/annotate/43c799df6e75/foo?style=coal#l1"> <a href="/diff/43c799df6e75/foo?style=coal">diff</a> <a href="/rev/43c799df6e75?style=coal">changeset</a> <a href="/annotate/a7c1559b7bba/foo?style=coal#l2"> <a href="/annotate/a7c1559b7bba/foo?style=coal#l2"> <a href="/annotate/43c799df6e75/foo?style=coal">0</a></div> <a href="/diff/a7c1559b7bba/foo?style=coal">diff</a> <a href="/rev/a7c1559b7bba?style=coal">changeset</a> $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'diff/xyzzy/foo?style=coal' | grep -E $REVLINKS <li><a href="/shortlog/xyzzy?style=coal">log</a></li> <li><a href="/graph/xyzzy?style=coal">graph</a></li> <li><a href="/rev/xyzzy?style=coal">changeset</a></li> <li><a href="/file/xyzzy?style=coal">browse</a></li> <li><a href="/file/xyzzy/foo?style=coal">file</a></li> <li><a href="/file/tip/foo?style=coal">latest</a></li> <li><a href="/comparison/xyzzy/foo?style=coal">comparison</a></li> <li><a href="/annotate/xyzzy/foo?style=coal">annotate</a></li> <li><a href="/log/xyzzy/foo?style=coal">file log</a></li> <li><a href="/raw-file/xyzzy/foo">raw</a></li> diff foo @ 1:<a href="/rev/a7c1559b7bba?style=coal">a7c1559b7bba</a> <td><a href="/file/43c799df6e75/foo?style=coal">43c799df6e75</a> </td> <td><a href="/file/9d8c40cba617/foo?style=coal">9d8c40cba617</a> </td> $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'comparison/xyzzy/foo?style=coal' | grep -E $REVLINKS <li><a href="/shortlog/xyzzy?style=coal">log</a></li> <li><a href="/graph/xyzzy?style=coal">graph</a></li> <li><a href="/rev/xyzzy?style=coal">changeset</a></li> <li><a href="/file/xyzzy?style=coal">browse</a></li> <li><a href="/file/xyzzy/foo?style=coal">file</a></li> <li><a href="/file/tip/foo?style=coal">latest</a></li> <li><a href="/diff/xyzzy/foo?style=coal">diff</a></li> <li><a href="/annotate/xyzzy/foo?style=coal">annotate</a></li> <li><a href="/log/xyzzy/foo?style=coal">file log</a></li> <li><a href="/raw-file/xyzzy/foo">raw</a></li> comparison foo @ 1:<a href="/rev/a7c1559b7bba?style=coal">a7c1559b7bba</a> <td><a href="/file/43c799df6e75/foo?style=coal">43c799df6e75</a> </td> <td><a href="/file/9d8c40cba617/foo?style=coal">9d8c40cba617</a> </td> (De)referencing symbolic revisions (gitweb) $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'summary?style=gitweb' | grep -E $REVLINKS <a href="/file?style=gitweb">files</a> | <a href="/archive/tip.zip">zip</a> | <a class="list" href="/rev/9d8c40cba617?style=gitweb"> <a href="/rev/9d8c40cba617?style=gitweb">changeset</a> | <a href="/file/9d8c40cba617?style=gitweb">files</a> <a class="list" href="/rev/a7c1559b7bba?style=gitweb"> <a href="/rev/a7c1559b7bba?style=gitweb">changeset</a> | <a href="/file/a7c1559b7bba?style=gitweb">files</a> <a class="list" href="/rev/43c799df6e75?style=gitweb"> <a href="/rev/43c799df6e75?style=gitweb">changeset</a> | <a href="/file/43c799df6e75?style=gitweb">files</a> <td><a class="list" href="/rev/xyzzy?style=gitweb"><b>xyzzy</b></a></td> <a href="/rev/a7c1559b7bba?style=gitweb">changeset</a> | <a href="/log/a7c1559b7bba?style=gitweb">changelog</a> | <a href="/file/a7c1559b7bba?style=gitweb">files</a> <td class="open"><a class="list" href="/shortlog/default?style=gitweb"><b>default</b></a></td> <a href="/changeset/9d8c40cba617?style=gitweb">changeset</a> | <a href="/log/9d8c40cba617?style=gitweb">changelog</a> | <a href="/file/9d8c40cba617?style=gitweb">files</a> $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'shortlog?style=gitweb' | grep -E $REVLINKS <a href="/log/tip?style=gitweb">changelog</a> | <a href="/graph/tip?style=gitweb">graph</a> | <a href="/file/tip?style=gitweb">files</a> | <a href="/archive/tip.zip">zip</a> | <br/><a href="/shortlog/43c799df6e75?style=gitweb">(0)</a> <a href="/shortlog/tip?style=gitweb">tip</a> <br/> <a class="list" href="/rev/9d8c40cba617?style=gitweb"> <a href="/rev/9d8c40cba617?style=gitweb">changeset</a> | <a href="/file/9d8c40cba617?style=gitweb">files</a> <a class="list" href="/rev/a7c1559b7bba?style=gitweb"> <a href="/rev/a7c1559b7bba?style=gitweb">changeset</a> | <a href="/file/a7c1559b7bba?style=gitweb">files</a> <a class="list" href="/rev/43c799df6e75?style=gitweb"> <a href="/rev/43c799df6e75?style=gitweb">changeset</a> | <a href="/file/43c799df6e75?style=gitweb">files</a> <a href="/shortlog/43c799df6e75?style=gitweb">(0)</a> <a href="/shortlog/tip?style=gitweb">tip</a> $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'log?style=gitweb' | grep -E $REVLINKS <a href="/shortlog/tip?style=gitweb">shortlog</a> | <a href="/graph/tip?style=gitweb">graph</a> | <a href="/file/tip?style=gitweb">files</a> | <a href="/archive/tip.zip">zip</a> | <a href="/log/43c799df6e75?style=gitweb">(0)</a> <a href="/log/tip?style=gitweb">tip</a> <br/> <a class="title" href="/rev/9d8c40cba617?style=gitweb"> <a href="/rev/9d8c40cba617?style=gitweb">changeset</a><br/> <a class="title" href="/rev/a7c1559b7bba?style=gitweb"> <a href="/rev/a7c1559b7bba?style=gitweb">changeset</a><br/> <a class="title" href="/rev/43c799df6e75?style=gitweb"> <a href="/rev/43c799df6e75?style=gitweb">changeset</a><br/> <a href="/log/43c799df6e75?style=gitweb">(0)</a> <a href="/log/tip?style=gitweb">tip</a> <br/> $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'graph?style=gitweb' | grep -E $REVLINKS <a href="/shortlog/tip?style=gitweb">shortlog</a> | <a href="/log/tip?style=gitweb">changelog</a> | <a href="/file/tip?style=gitweb">files</a> | <a href="/archive/tip.zip">zip</a> | <a href="/graph/tip?revcount=30&style=gitweb">less</a> <a href="/graph/tip?revcount=120&style=gitweb">more</a> | <a href="/graph/43c799df6e75?style=gitweb">(0)</a> <a href="/graph/tip?style=gitweb">tip</a> <a class="list" href="/rev/9d8c40cba617?style=gitweb"><b>third</b></a> <a class="list" href="/rev/a7c1559b7bba?style=gitweb"><b>second</b></a> <a class="list" href="/rev/43c799df6e75?style=gitweb"><b>first</b></a> <a href="/graph/tip?revcount=30&style=gitweb">less</a> <a href="/graph/tip?revcount=120&style=gitweb">more</a> | <a href="/graph/43c799df6e75?style=gitweb">(0)</a> <a href="/graph/tip?style=gitweb">tip</a> $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'tags?style=gitweb' | grep -E $REVLINKS <td><a class="list" href="/rev/tip?style=gitweb"><b>tip</b></a></td> <a href="/rev/9d8c40cba617?style=gitweb">changeset</a> | <a href="/log/9d8c40cba617?style=gitweb">changelog</a> | <a href="/file/9d8c40cba617?style=gitweb">files</a> $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'bookmarks?style=gitweb' | grep -E $REVLINKS <td><a class="list" href="/rev/xyzzy?style=gitweb"><b>xyzzy</b></a></td> <a href="/rev/a7c1559b7bba?style=gitweb">changeset</a> | <a href="/log/a7c1559b7bba?style=gitweb">changelog</a> | <a href="/file/a7c1559b7bba?style=gitweb">files</a> $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'branches?style=gitweb' | grep -E $REVLINKS <td class="open"><a class="list" href="/shortlog/default?style=gitweb"><b>default</b></a></td> <a href="/changeset/9d8c40cba617?style=gitweb">changeset</a> | <a href="/log/9d8c40cba617?style=gitweb">changelog</a> | <a href="/file/9d8c40cba617?style=gitweb">files</a> $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'file?style=gitweb' | grep -E $REVLINKS <a href="/rev/tip?style=gitweb">changeset</a> | <a href="/archive/tip.zip">zip</a> | <a href="/file/tip/dir?style=gitweb">dir</a> <a href="/file/tip/dir/?style=gitweb"></a> <a href="/file/tip/dir?style=gitweb">files</a> <a class="list" href="/file/tip/foo?style=gitweb">foo</a> <a href="/file/tip/foo?style=gitweb">file</a> | <a href="/log/tip/foo?style=gitweb">revisions</a> | <a href="/annotate/tip/foo?style=gitweb">annotate</a> $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'shortlog?style=gitweb&rev=all()' | grep -E $REVLINKS <a href="/file?style=gitweb">files</a> | <a href="/archive/tip.zip">zip</a> <a class="title" href="/rev/9d8c40cba617?style=gitweb"> <a href="/rev/9d8c40cba617?style=gitweb">changeset</a><br/> <a class="title" href="/rev/a7c1559b7bba?style=gitweb"> <a href="/rev/a7c1559b7bba?style=gitweb">changeset</a><br/> <a class="title" href="/rev/43c799df6e75?style=gitweb"> <a href="/rev/43c799df6e75?style=gitweb">changeset</a><br/> $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'rev/xyzzy?style=gitweb' | grep -E $REVLINKS <a href="/shortlog/xyzzy?style=gitweb">shortlog</a> | <a href="/log/xyzzy?style=gitweb">changelog</a> | <a href="/graph/xyzzy?style=gitweb">graph</a> | <a href="/file/xyzzy?style=gitweb">files</a> | <a href="/raw-rev/xyzzy">raw</a> | <a href="/archive/xyzzy.zip">zip</a> | <a class="title" href="/raw-rev/a7c1559b7bba"> <td style="font-family:monospace"><a class="list" href="/rev/a7c1559b7bba?style=gitweb">a7c1559b7bba</a></td> <a class="list" href="/rev/43c799df6e75?style=gitweb">43c799df6e75</a> <a class="list" href="/rev/9d8c40cba617?style=gitweb">9d8c40cba617</a> <td><a class="list" href="/diff/a7c1559b7bba/foo?style=gitweb">foo</a></td> <a href="/file/a7c1559b7bba/foo?style=gitweb">file</a> | <a href="/annotate/a7c1559b7bba/foo?style=gitweb">annotate</a> | <a href="/diff/a7c1559b7bba/foo?style=gitweb">diff</a> | <a href="/comparison/a7c1559b7bba/foo?style=gitweb">comparison</a> | <a href="/log/a7c1559b7bba/foo?style=gitweb">revisions</a> $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'shortlog/xyzzy?style=gitweb' | grep -E $REVLINKS <a href="/log/xyzzy?style=gitweb">changelog</a> | <a href="/graph/xyzzy?style=gitweb">graph</a> | <a href="/file/xyzzy?style=gitweb">files</a> | <a href="/archive/xyzzy.zip">zip</a> | <br/><a href="/shortlog/43c799df6e75?style=gitweb">(0)</a> <a href="/shortlog/tip?style=gitweb">tip</a> <br/> <a class="list" href="/rev/a7c1559b7bba?style=gitweb"> <a href="/rev/a7c1559b7bba?style=gitweb">changeset</a> | <a href="/file/a7c1559b7bba?style=gitweb">files</a> <a class="list" href="/rev/43c799df6e75?style=gitweb"> <a href="/rev/43c799df6e75?style=gitweb">changeset</a> | <a href="/file/43c799df6e75?style=gitweb">files</a> <a href="/shortlog/43c799df6e75?style=gitweb">(0)</a> <a href="/shortlog/tip?style=gitweb">tip</a> $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'log/xyzzy?style=gitweb' | grep -E $REVLINKS <a href="/shortlog/xyzzy?style=gitweb">shortlog</a> | <a href="/graph/xyzzy?style=gitweb">graph</a> | <a href="/file/xyzzy?style=gitweb">files</a> | <a href="/archive/xyzzy.zip">zip</a> | <a href="/log/43c799df6e75?style=gitweb">(0)</a> <a href="/log/tip?style=gitweb">tip</a> <br/> <a class="title" href="/rev/a7c1559b7bba?style=gitweb"> <a href="/rev/a7c1559b7bba?style=gitweb">changeset</a><br/> <a class="title" href="/rev/43c799df6e75?style=gitweb"> <a href="/rev/43c799df6e75?style=gitweb">changeset</a><br/> <a href="/log/43c799df6e75?style=gitweb">(0)</a> <a href="/log/tip?style=gitweb">tip</a> <br/> $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'graph/xyzzy?style=gitweb' | grep -E $REVLINKS <a href="/shortlog/xyzzy?style=gitweb">shortlog</a> | <a href="/log/xyzzy?style=gitweb">changelog</a> | <a href="/file/xyzzy?style=gitweb">files</a> | <a href="/archive/xyzzy.zip">zip</a> | <a href="/graph/xyzzy?revcount=30&style=gitweb">less</a> <a href="/graph/xyzzy?revcount=120&style=gitweb">more</a> | <a href="/graph/43c799df6e75?style=gitweb">(0)</a> <a href="/graph/tip?style=gitweb">tip</a> <a class="list" href="/rev/a7c1559b7bba?style=gitweb"><b>second</b></a> <a class="list" href="/rev/43c799df6e75?style=gitweb"><b>first</b></a> <a href="/graph/xyzzy?revcount=30&style=gitweb">less</a> <a href="/graph/xyzzy?revcount=120&style=gitweb">more</a> | <a href="/graph/43c799df6e75?style=gitweb">(0)</a> <a href="/graph/tip?style=gitweb">tip</a> $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'file/xyzzy?style=gitweb' | grep -E $REVLINKS <a href="/rev/xyzzy?style=gitweb">changeset</a> | <a href="/archive/xyzzy.zip">zip</a> | <a href="/file/xyzzy/dir?style=gitweb">dir</a> <a href="/file/xyzzy/dir/?style=gitweb"></a> <a href="/file/xyzzy/dir?style=gitweb">files</a> <a class="list" href="/file/xyzzy/foo?style=gitweb">foo</a> <a href="/file/xyzzy/foo?style=gitweb">file</a> | <a href="/log/xyzzy/foo?style=gitweb">revisions</a> | <a href="/annotate/xyzzy/foo?style=gitweb">annotate</a> $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'file/xyzzy/foo?style=gitweb' | grep -E $REVLINKS <a href="/file/xyzzy/?style=gitweb">files</a> | <a href="/rev/xyzzy?style=gitweb">changeset</a> | <a href="/file/tip/foo?style=gitweb">latest</a> | <a href="/log/xyzzy/foo?style=gitweb">revisions</a> | <a href="/annotate/xyzzy/foo?style=gitweb">annotate</a> | <a href="/diff/xyzzy/foo?style=gitweb">diff</a> | <a href="/comparison/xyzzy/foo?style=gitweb">comparison</a> | <a href="/raw-file/xyzzy/foo">raw</a> | <td style="font-family:monospace"><a class="list" href="/rev/a7c1559b7bba?style=gitweb">a7c1559b7bba</a></td> <a class="list" href="/file/43c799df6e75/foo?style=gitweb"> <a class="list" href="/file/9d8c40cba617/foo?style=gitweb">9d8c40cba617</a></td> $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'log/xyzzy/foo?style=gitweb' | grep -E $REVLINKS <a href="/file/xyzzy/foo?style=gitweb">file</a> | <a href="/annotate/xyzzy/foo?style=gitweb">annotate</a> | <a href="/diff/xyzzy/foo?style=gitweb">diff</a> | <a href="/comparison/xyzzy/foo?style=gitweb">comparison</a> | <a href="/rss-log/tip/foo">rss</a> | <a href="/log/43c799df6e75/foo?style=gitweb">(0)</a> <a href="/log/tip/foo?style=gitweb">tip</a> <a class="list" href="/rev/a7c1559b7bba?style=gitweb"> <a href="/file/a7c1559b7bba/foo?style=gitweb">file</a> | <a href="/diff/a7c1559b7bba/foo?style=gitweb">diff</a> | <a href="/annotate/a7c1559b7bba/foo?style=gitweb">annotate</a> <a class="list" href="/rev/43c799df6e75?style=gitweb"> <a href="/file/43c799df6e75/foo?style=gitweb">file</a> | <a href="/diff/43c799df6e75/foo?style=gitweb">diff</a> | <a href="/annotate/43c799df6e75/foo?style=gitweb">annotate</a> <a href="/log/xyzzy/foo?revcount=30&style=gitweb">less</a> <a href="/log/xyzzy/foo?revcount=120&style=gitweb">more</a> <a href="/log/43c799df6e75/foo?style=gitweb">(0)</a> <a href="/log/tip/foo?style=gitweb">tip</a> $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'annotate/xyzzy/foo?style=gitweb' | grep -E $REVLINKS <a href="/file/xyzzy/?style=gitweb">files</a> | <a href="/rev/xyzzy?style=gitweb">changeset</a> | <a href="/file/xyzzy/foo?style=gitweb">file</a> | <a href="/file/tip/foo?style=gitweb">latest</a> | <a href="/log/xyzzy/foo?style=gitweb">revisions</a> | <a href="/diff/xyzzy/foo?style=gitweb">diff</a> | <a href="/comparison/xyzzy/foo?style=gitweb">comparison</a> | <a href="/raw-file/xyzzy/foo">raw</a> | <td style="font-family:monospace"><a class="list" href="/rev/a7c1559b7bba?style=gitweb">a7c1559b7bba</a></td> <a class="list" href="/annotate/43c799df6e75/foo?style=gitweb"> <a class="list" href="/annotate/9d8c40cba617/foo?style=gitweb">9d8c40cba617</a></td> <a href="/annotate/43c799df6e75/foo?style=gitweb#l1"> <a href="/annotate/43c799df6e75/foo?style=gitweb#l1"> <a href="/diff/43c799df6e75/foo?style=gitweb">diff</a> <a href="/rev/43c799df6e75?style=gitweb">changeset</a> <a href="/annotate/a7c1559b7bba/foo?style=gitweb#l2"> <a href="/annotate/a7c1559b7bba/foo?style=gitweb#l2"> <a href="/annotate/43c799df6e75/foo?style=gitweb">0</a></div> <a href="/diff/a7c1559b7bba/foo?style=gitweb">diff</a> <a href="/rev/a7c1559b7bba?style=gitweb">changeset</a> $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'diff/xyzzy/foo?style=gitweb' | grep -E $REVLINKS <a href="/file/xyzzy?style=gitweb">files</a> | <a href="/rev/xyzzy?style=gitweb">changeset</a> | <a href="/file/xyzzy/foo?style=gitweb">file</a> | <a href="/file/tip/foo?style=gitweb">latest</a> | <a href="/log/xyzzy/foo?style=gitweb">revisions</a> | <a href="/annotate/xyzzy/foo?style=gitweb">annotate</a> | <a href="/comparison/xyzzy/foo?style=gitweb">comparison</a> | <a href="/raw-diff/xyzzy/foo">raw</a> | <td style="font-family:monospace"><a class="list" href="/rev/a7c1559b7bba?style=gitweb">a7c1559b7bba</a></td> <a class="list" href="/diff/43c799df6e75/foo?style=gitweb"> <a class="list" href="/diff/9d8c40cba617/foo?style=gitweb">9d8c40cba617</a> $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'comparison/xyzzy/foo?style=gitweb' | grep -E $REVLINKS <a href="/file/xyzzy?style=gitweb">files</a> | <a href="/rev/xyzzy?style=gitweb">changeset</a> | <a href="/file/xyzzy/foo?style=gitweb">file</a> | <a href="/file/tip/foo?style=gitweb">latest</a> | <a href="/log/xyzzy/foo?style=gitweb">revisions</a> | <a href="/annotate/xyzzy/foo?style=gitweb">annotate</a> | <a href="/diff/xyzzy/foo?style=gitweb">diff</a> | <a href="/raw-diff/xyzzy/foo">raw</a> | <td style="font-family:monospace"><a class="list" href="/rev/a7c1559b7bba?style=gitweb">a7c1559b7bba</a></td> <a class="list" href="/comparison/43c799df6e75/foo?style=gitweb"> <a class="list" href="/comparison/9d8c40cba617/foo?style=gitweb">9d8c40cba617</a> (De)referencing symbolic revisions (monoblue) $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'summary?style=monoblue' | grep -E $REVLINKS <li><a href="/archive/tip.zip">zip</a></li> <a href="/rev/9d8c40cba617?style=monoblue"> <a href="/rev/9d8c40cba617?style=monoblue">changeset</a> | <a href="/file/9d8c40cba617?style=monoblue">files</a> <a href="/rev/a7c1559b7bba?style=monoblue"> <a href="/rev/a7c1559b7bba?style=monoblue">changeset</a> | <a href="/file/a7c1559b7bba?style=monoblue">files</a> <a href="/rev/43c799df6e75?style=monoblue"> <a href="/rev/43c799df6e75?style=monoblue">changeset</a> | <a href="/file/43c799df6e75?style=monoblue">files</a> <td><a href="/rev/xyzzy?style=monoblue">xyzzy</a></td> <a href="/rev/a7c1559b7bba?style=monoblue">changeset</a> | <a href="/log/a7c1559b7bba?style=monoblue">changelog</a> | <a href="/file/a7c1559b7bba?style=monoblue">files</a> <td class="open"><a href="/shortlog/default?style=monoblue">default</a></td> <a href="/rev/9d8c40cba617?style=monoblue">changeset</a> | <a href="/log/9d8c40cba617?style=monoblue">changelog</a> | <a href="/file/9d8c40cba617?style=monoblue">files</a> $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'shortlog?style=monoblue' | grep -E $REVLINKS <li><a href="/graph/tip?style=monoblue">graph</a></li> <li><a href="/file/tip?style=monoblue">files</a></li> <li><a href="/archive/tip.zip">zip</a></li> <a href="/rev/9d8c40cba617?style=monoblue"> <a href="/rev/9d8c40cba617?style=monoblue">changeset</a> | <a href="/file/9d8c40cba617?style=monoblue">files</a> <a href="/rev/a7c1559b7bba?style=monoblue"> <a href="/rev/a7c1559b7bba?style=monoblue">changeset</a> | <a href="/file/a7c1559b7bba?style=monoblue">files</a> <a href="/rev/43c799df6e75?style=monoblue"> <a href="/rev/43c799df6e75?style=monoblue">changeset</a> | <a href="/file/43c799df6e75?style=monoblue">files</a> <a href="/shortlog/43c799df6e75?style=monoblue">(0)</a> <a href="/shortlog/tip?style=monoblue">tip</a> $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'log?style=monoblue' | grep -E $REVLINKS <li><a href="/graph/tip?style=monoblue">graph</a></li> <li><a href="/file/tip?style=monoblue">files</a></li> <li><a href="/archive/tip.zip">zip</a></li> <a class="title" href="/rev/9d8c40cba617?style=monoblue"> <a class="title" href="/rev/a7c1559b7bba?style=monoblue"> <a class="title" href="/rev/43c799df6e75?style=monoblue"> <a href="/log/43c799df6e75?style=monoblue">(0)</a> <a href="/log/tip?style=monoblue">tip</a> $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'graph?style=monoblue' | grep -E $REVLINKS <li><a href="/file/tip?style=monoblue">files</a></li> <li><a href="/archive/tip.zip">zip</a></li> <a href="/rev/9d8c40cba617?style=monoblue">third</a> <a href="/rev/a7c1559b7bba?style=monoblue">second</a> <a href="/rev/43c799df6e75?style=monoblue">first</a> <a href="/graph/tip?revcount=30&style=monoblue">less</a> <a href="/graph/tip?revcount=120&style=monoblue">more</a> | <a href="/graph/43c799df6e75?style=monoblue">(0)</a> <a href="/graph/tip?style=monoblue">tip</a> $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'tags?style=monoblue' | grep -E $REVLINKS <td><a href="/rev/tip?style=monoblue">tip</a></td> <a href="/rev/9d8c40cba617?style=monoblue">changeset</a> | <a href="/log/9d8c40cba617?style=monoblue">changelog</a> | <a href="/file/9d8c40cba617?style=monoblue">files</a> $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'bookmarks?style=monoblue' | grep -E $REVLINKS <td><a href="/rev/xyzzy?style=monoblue">xyzzy</a></td> <a href="/rev/a7c1559b7bba?style=monoblue">changeset</a> | <a href="/log/a7c1559b7bba?style=monoblue">changelog</a> | <a href="/file/a7c1559b7bba?style=monoblue">files</a> $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'branches?style=monoblue' | grep -E $REVLINKS <td class="open"><a href="/shortlog/default?style=monoblue">default</a></td> <a href="/rev/9d8c40cba617?style=monoblue">changeset</a> | <a href="/log/9d8c40cba617?style=monoblue">changelog</a> | <a href="/file/9d8c40cba617?style=monoblue">files</a> $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'file?style=monoblue' | grep -E $REVLINKS <li><a href="/graph/tip?style=monoblue">graph</a></li> <li><a href="/rev/tip?style=monoblue">changeset</a></li> <li><a href="/archive/tip.zip">zip</a></li> <a href="/file/tip/dir?style=monoblue">dir</a> <a href="/file/tip/dir/?style=monoblue"></a> <td><a href="/file/tip/dir?style=monoblue">files</a></td> <td><a href="/file/tip/foo?style=monoblue">foo</a></td> <a href="/file/tip/foo?style=monoblue">file</a> | <a href="/log/tip/foo?style=monoblue">revisions</a> | <a href="/annotate/tip/foo?style=monoblue">annotate</a> $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'shortlog?style=monoblue&rev=all()' | grep -E $REVLINKS <li><a href="/archive/tip.zip">zip</a></li> <a class="title" href="/rev/9d8c40cba617?style=monoblue"> <a class="title" href="/rev/a7c1559b7bba?style=monoblue"> <a class="title" href="/rev/43c799df6e75?style=monoblue"> $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'rev/xyzzy?style=monoblue' | grep -E $REVLINKS <li><a href="/graph/xyzzy?style=monoblue">graph</a></li> <li><a href="/file/xyzzy?style=monoblue">files</a></li> <li><a href="/raw-rev/xyzzy">raw</a></li> <li><a href="/archive/xyzzy.zip">zip</a></li> <a href="/raw-rev/a7c1559b7bba"> <dd><a href="/rev/a7c1559b7bba?style=monoblue">a7c1559b7bba</a></dd> <dd><a href="/rev/43c799df6e75?style=monoblue">43c799df6e75</a></dd> <dd><a href="/rev/9d8c40cba617?style=monoblue">9d8c40cba617</a></dd> <td><a href="/diff/a7c1559b7bba/foo?style=monoblue">foo</a></td> <a href="/file/a7c1559b7bba/foo?style=monoblue">file</a> | <a href="/annotate/a7c1559b7bba/foo?style=monoblue">annotate</a> | <a href="/diff/a7c1559b7bba/foo?style=monoblue">diff</a> | <a href="/comparison/a7c1559b7bba/foo?style=monoblue">comparison</a> | <a href="/log/a7c1559b7bba/foo?style=monoblue">revisions</a> $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'shortlog/xyzzy?style=monoblue' | grep -E $REVLINKS <li><a href="/graph/xyzzy?style=monoblue">graph</a></li> <li><a href="/file/xyzzy?style=monoblue">files</a></li> <li><a href="/archive/xyzzy.zip">zip</a></li> <a href="/rev/a7c1559b7bba?style=monoblue"> <a href="/rev/a7c1559b7bba?style=monoblue">changeset</a> | <a href="/file/a7c1559b7bba?style=monoblue">files</a> <a href="/rev/43c799df6e75?style=monoblue"> <a href="/rev/43c799df6e75?style=monoblue">changeset</a> | <a href="/file/43c799df6e75?style=monoblue">files</a> <a href="/shortlog/43c799df6e75?style=monoblue">(0)</a> <a href="/shortlog/tip?style=monoblue">tip</a> $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'log/xyzzy?style=monoblue' | grep -E $REVLINKS <li><a href="/graph/xyzzy?style=monoblue">graph</a></li> <li><a href="/file/xyzzy?style=monoblue">files</a></li> <li><a href="/archive/xyzzy.zip">zip</a></li> <a class="title" href="/rev/a7c1559b7bba?style=monoblue"> <a class="title" href="/rev/43c799df6e75?style=monoblue"> <a href="/log/43c799df6e75?style=monoblue">(0)</a> <a href="/log/tip?style=monoblue">tip</a> $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'graph/xyzzy?style=monoblue' | grep -E $REVLINKS <li><a href="/file/xyzzy?style=monoblue">files</a></li> <li><a href="/archive/xyzzy.zip">zip</a></li> <a href="/rev/a7c1559b7bba?style=monoblue">second</a> <a href="/rev/43c799df6e75?style=monoblue">first</a> <a href="/graph/xyzzy?revcount=30&style=monoblue">less</a> <a href="/graph/xyzzy?revcount=120&style=monoblue">more</a> | <a href="/graph/43c799df6e75?style=monoblue">(0)</a> <a href="/graph/tip?style=monoblue">tip</a> $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'file/xyzzy?style=monoblue' | grep -E $REVLINKS <li><a href="/graph/xyzzy?style=monoblue">graph</a></li> <li><a href="/rev/xyzzy?style=monoblue">changeset</a></li> <li><a href="/archive/xyzzy.zip">zip</a></li> <a href="/file/xyzzy/dir?style=monoblue">dir</a> <a href="/file/xyzzy/dir/?style=monoblue"></a> <td><a href="/file/xyzzy/dir?style=monoblue">files</a></td> <td><a href="/file/xyzzy/foo?style=monoblue">foo</a></td> <a href="/file/xyzzy/foo?style=monoblue">file</a> | <a href="/log/xyzzy/foo?style=monoblue">revisions</a> | <a href="/annotate/xyzzy/foo?style=monoblue">annotate</a> $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'file/xyzzy/foo?style=monoblue' | grep -E $REVLINKS <li><a href="/graph/xyzzy?style=monoblue">graph</a></li> <li><a href="/file/xyzzy/?style=monoblue">files</a></li> <li><a href="/file/tip/foo?style=monoblue">latest</a></li> <li><a href="/log/xyzzy/foo?style=monoblue">revisions</a></li> <li><a href="/annotate/xyzzy/foo?style=monoblue">annotate</a></li> <li><a href="/diff/xyzzy/foo?style=monoblue">diff</a></li> <li><a href="/comparison/xyzzy/foo?style=monoblue">comparison</a></li> <li><a href="/raw-file/xyzzy/foo">raw</a></li> <dd><a class="list" href="/rev/a7c1559b7bba?style=monoblue">a7c1559b7bba</a></dd> <a href="/file/43c799df6e75/foo?style=monoblue"> <a href="/file/9d8c40cba617/foo?style=monoblue">9d8c40cba617</a> $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'log/xyzzy/foo?style=monoblue' | grep -E $REVLINKS <li><a href="/graph/xyzzy?style=monoblue">graph</a></li> <li><a href="/file/xyzzy?style=monoblue">files</a></li> <li><a href="/file/xyzzy/foo?style=monoblue">file</a></li> <li><a href="/annotate/xyzzy/foo?style=monoblue">annotate</a></li> <li><a href="/diff/xyzzy/foo?style=monoblue">diff</a></li> <li><a href="/comparison/xyzzy/foo?style=monoblue">comparison</a></li> <li><a href="/rss-log/tip/foo">rss</a></li> <a href="/rev/a7c1559b7bba?style=monoblue"> <a href="/file/a7c1559b7bba/foo?style=monoblue">file</a> | <a href="/diff/a7c1559b7bba/foo?style=monoblue">diff</a> | <a href="/annotate/a7c1559b7bba/foo?style=monoblue">annotate</a> <a href="/rev/43c799df6e75?style=monoblue"> <a href="/file/43c799df6e75/foo?style=monoblue">file</a> | <a href="/diff/43c799df6e75/foo?style=monoblue">diff</a> | <a href="/annotate/43c799df6e75/foo?style=monoblue">annotate</a> <a href="/log/43c799df6e75/foo?style=monoblue">(0)</a> <a href="/log/tip/foo?style=monoblue">tip</a> $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'annotate/xyzzy/foo?style=monoblue' | grep -E $REVLINKS <li><a href="/graph/xyzzy?style=monoblue">graph</a></li> <li><a href="/file/xyzzy/?style=monoblue">files</a></li> <li><a href="/file/xyzzy/foo?style=monoblue">file</a></li> <li><a href="/file/tip/foo?style=monoblue">latest</a></li> <li><a href="/log/xyzzy/foo?style=monoblue">revisions</a></li> <li><a href="/diff/xyzzy/foo?style=monoblue">diff</a></li> <li><a href="/comparison/xyzzy/foo?style=monoblue">comparison</a></li> <li><a href="/raw-file/xyzzy/foo">raw</a></li> <dd><a href="/rev/a7c1559b7bba?style=monoblue">a7c1559b7bba</a></dd> <a href="/annotate/43c799df6e75/foo?style=monoblue"> <a href="/annotate/9d8c40cba617/foo?style=monoblue">9d8c40cba617</a> <a href="/annotate/43c799df6e75/foo?style=monoblue#l1"> <a href="/annotate/43c799df6e75/foo?style=monoblue#l1"> <a href="/diff/43c799df6e75/foo?style=monoblue">diff</a> <a href="/rev/43c799df6e75?style=monoblue">changeset</a> <a href="/annotate/a7c1559b7bba/foo?style=monoblue#l2"> <a href="/annotate/a7c1559b7bba/foo?style=monoblue#l2"> <a href="/annotate/43c799df6e75/foo?style=monoblue">0</a></div> <a href="/diff/a7c1559b7bba/foo?style=monoblue">diff</a> <a href="/rev/a7c1559b7bba?style=monoblue">changeset</a> $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'diff/xyzzy/foo?style=monoblue' | grep -E $REVLINKS <li><a href="/graph/xyzzy?style=monoblue">graph</a></li> <li><a href="/file/xyzzy?style=monoblue">files</a></li> <li><a href="/file/xyzzy/foo?style=monoblue">file</a></li> <li><a href="/file/tip/foo?style=monoblue">latest</a></li> <li><a href="/log/xyzzy/foo?style=monoblue">revisions</a></li> <li><a href="/annotate/xyzzy/foo?style=monoblue">annotate</a></li> <li><a href="/comparison/xyzzy/foo?style=monoblue">comparison</a></li> <li><a href="/raw-diff/xyzzy/foo">raw</a></li> <dd><a href="/rev/a7c1559b7bba?style=monoblue">a7c1559b7bba</a></dd> <dd><a href="/diff/43c799df6e75/foo?style=monoblue">43c799df6e75</a></dd> <dd><a href="/diff/9d8c40cba617/foo?style=monoblue">9d8c40cba617</a></dd> $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'comparison/xyzzy/foo?style=monoblue' | grep -E $REVLINKS <li><a href="/graph/xyzzy?style=monoblue">graph</a></li> <li><a href="/file/xyzzy?style=monoblue">files</a></li> <li><a href="/file/xyzzy/foo?style=monoblue">file</a></li> <li><a href="/file/tip/foo?style=monoblue">latest</a></li> <li><a href="/log/xyzzy/foo?style=monoblue">revisions</a></li> <li><a href="/annotate/xyzzy/foo?style=monoblue">annotate</a></li> <li><a href="/diff/xyzzy/foo?style=monoblue">diff</a></li> <li><a href="/raw-diff/xyzzy/foo">raw</a></li> <dd><a href="/rev/a7c1559b7bba?style=monoblue">a7c1559b7bba</a></dd> <dd><a href="/comparison/43c799df6e75/foo?style=monoblue">43c799df6e75</a></dd> <dd><a href="/comparison/9d8c40cba617/foo?style=monoblue">9d8c40cba617</a></dd> (De)referencing symbolic revisions (spartan) $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'shortlog?style=spartan' | grep -E $REVLINKS <a href="/log/tip?style=spartan">changelog</a> <a href="/graph/tip?style=spartan">graph</a> <a href="/file/tip/?style=spartan">files</a> <a href="/archive/tip.zip">zip</a> navigate: <small class="navigate"><a href="/shortlog/43c799df6e75?style=spartan">(0)</a> <a href="/shortlog/tip?style=spartan">tip</a> </small> <td class="node"><a href="/rev/9d8c40cba617?style=spartan">third</a></td> <td class="node"><a href="/rev/a7c1559b7bba?style=spartan">second</a></td> <td class="node"><a href="/rev/43c799df6e75?style=spartan">first</a></td> navigate: <small class="navigate"><a href="/shortlog/43c799df6e75?style=spartan">(0)</a> <a href="/shortlog/tip?style=spartan">tip</a> </small> $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'log?style=spartan' | grep -E $REVLINKS <a href="/shortlog/tip?style=spartan">shortlog</a> <a href="/graph/tip?style=spartan">graph</a> <a href="/file/tip?style=spartan">files</a> <a href="/archive/tip.zip">zip</a> navigate: <small class="navigate"><a href="/log/43c799df6e75?style=spartan">(0)</a> <a href="/log/tip?style=spartan">tip</a> </small> <td class="node"><a href="/rev/9d8c40cba617?style=spartan">9d8c40cba617</a></td> <th class="files"><a href="/file/9d8c40cba617?style=spartan">files</a>:</th> <td class="files"><a href="/diff/9d8c40cba617/foo?style=spartan">foo</a> </td> <td class="node"><a href="/rev/a7c1559b7bba?style=spartan">a7c1559b7bba</a></td> <th class="files"><a href="/file/a7c1559b7bba?style=spartan">files</a>:</th> <td class="files"><a href="/diff/a7c1559b7bba/foo?style=spartan">foo</a> </td> <td class="node"><a href="/rev/43c799df6e75?style=spartan">43c799df6e75</a></td> <th class="files"><a href="/file/43c799df6e75?style=spartan">files</a>:</th> <td class="files"><a href="/diff/43c799df6e75/dir/bar?style=spartan">dir/bar</a> <a href="/diff/43c799df6e75/foo?style=spartan">foo</a> </td> navigate: <small class="navigate"><a href="/log/43c799df6e75?style=spartan">(0)</a> <a href="/log/tip?style=spartan">tip</a> </small> $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'graph?style=spartan' | grep -E $REVLINKS <a href="/log/tip?style=spartan">changelog</a> <a href="/shortlog/tip?style=spartan">shortlog</a> <a href="/file/tip/?style=spartan">files</a> navigate: <small class="navigate"><a href="/graph/43c799df6e75?style=spartan">(0)</a> <a href="/graph/tip?style=spartan">tip</a> </small> <a href="/rev/9d8c40cba617?style=spartan">third</a> <a href="/rev/a7c1559b7bba?style=spartan">second</a> <a href="/rev/43c799df6e75?style=spartan">first</a> navigate: <small class="navigate"><a href="/graph/43c799df6e75?style=spartan">(0)</a> <a href="/graph/tip?style=spartan">tip</a> </small> $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'tags?style=spartan' | grep -E $REVLINKS <a href="/rev/9d8c40cba617?style=spartan">tip</a> $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'branches?style=spartan' | grep -E $REVLINKS <a href="/shortlog/9d8c40cba617?style=spartan" class="open">default</a> $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'file?style=spartan' | grep -E $REVLINKS <a href="/log/tip?style=spartan">changelog</a> <a href="/shortlog/tip?style=spartan">shortlog</a> <a href="/graph/tip?style=spartan">graph</a> <a href="/rev/tip?style=spartan">changeset</a> <a href="/archive/tip.zip">zip</a> <h2><a href="/">Mercurial</a> / files for changeset <a href="/rev/9d8c40cba617">9d8c40cba617</a>: /</h2> <a href="/file/tip/dir?style=spartan">dir/</a> <a href="/file/tip/dir/?style=spartan"> <td><a href="/file/tip/foo?style=spartan">foo</a></td> $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'shortlog?style=spartan&rev=all()' | grep -E $REVLINKS <a href="/archive/tip.zip">zip</a> <td class="node"><a href="/rev/9d8c40cba617?style=spartan">9d8c40cba617</a></td> <a href="/rev/a7c1559b7bba?style=spartan">a7c1559b7bba</a> <th class="files"><a href="/file/9d8c40cba617?style=spartan">files</a>:</th> <td class="files"><a href="/diff/9d8c40cba617/foo?style=spartan">foo</a> </td> <td class="node"><a href="/rev/a7c1559b7bba?style=spartan">a7c1559b7bba</a></td> <a href="/rev/43c799df6e75?style=spartan">43c799df6e75</a> <td class="child"><a href="/rev/9d8c40cba617?style=spartan">9d8c40cba617</a></td> <th class="files"><a href="/file/a7c1559b7bba?style=spartan">files</a>:</th> <td class="files"><a href="/diff/a7c1559b7bba/foo?style=spartan">foo</a> </td> <td class="node"><a href="/rev/43c799df6e75?style=spartan">43c799df6e75</a></td> <td class="child"><a href="/rev/a7c1559b7bba?style=spartan">a7c1559b7bba</a></td> <th class="files"><a href="/file/43c799df6e75?style=spartan">files</a>:</th> <td class="files"><a href="/diff/43c799df6e75/dir/bar?style=spartan">dir/bar</a> <a href="/diff/43c799df6e75/foo?style=spartan">foo</a> </td> $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'rev/xyzzy?style=spartan' | grep -E $REVLINKS <a href="/log/xyzzy?style=spartan">changelog</a> <a href="/shortlog/xyzzy?style=spartan">shortlog</a> <a href="/graph/xyzzy?style=spartan">graph</a> <a href="/file/xyzzy?style=spartan">files</a> <a href="/raw-rev/xyzzy">raw</a> <a href="/archive/xyzzy.zip">zip</a> <td class="changeset"><a href="/rev/a7c1559b7bba?style=spartan">a7c1559b7bba</a></td> <td class="parent"><a href="/rev/43c799df6e75?style=spartan">43c799df6e75</a></td> <td class="child"><a href="/rev/9d8c40cba617?style=spartan">9d8c40cba617</a></td> <td class="files"><a href="/file/a7c1559b7bba/foo?style=spartan">foo</a> </td> $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'shortlog/xyzzy?style=spartan' | grep -E $REVLINKS <a href="/log/xyzzy?style=spartan">changelog</a> <a href="/graph/xyzzy?style=spartan">graph</a> <a href="/file/xyzzy/?style=spartan">files</a> <a href="/archive/xyzzy.zip">zip</a> navigate: <small class="navigate"><a href="/shortlog/43c799df6e75?style=spartan">(0)</a> <a href="/shortlog/tip?style=spartan">tip</a> </small> <td class="node"><a href="/rev/a7c1559b7bba?style=spartan">second</a></td> <td class="node"><a href="/rev/43c799df6e75?style=spartan">first</a></td> navigate: <small class="navigate"><a href="/shortlog/43c799df6e75?style=spartan">(0)</a> <a href="/shortlog/tip?style=spartan">tip</a> </small> $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'log/xyzzy?style=spartan' | grep -E $REVLINKS <a href="/shortlog/xyzzy?style=spartan">shortlog</a> <a href="/graph/xyzzy?style=spartan">graph</a> <a href="/file/xyzzy?style=spartan">files</a> <a href="/archive/xyzzy.zip">zip</a> navigate: <small class="navigate"><a href="/log/43c799df6e75?style=spartan">(0)</a> <a href="/log/tip?style=spartan">tip</a> </small> <td class="node"><a href="/rev/a7c1559b7bba?style=spartan">a7c1559b7bba</a></td> <th class="files"><a href="/file/a7c1559b7bba?style=spartan">files</a>:</th> <td class="files"><a href="/diff/a7c1559b7bba/foo?style=spartan">foo</a> </td> <td class="node"><a href="/rev/43c799df6e75?style=spartan">43c799df6e75</a></td> <th class="files"><a href="/file/43c799df6e75?style=spartan">files</a>:</th> <td class="files"><a href="/diff/43c799df6e75/dir/bar?style=spartan">dir/bar</a> <a href="/diff/43c799df6e75/foo?style=spartan">foo</a> </td> navigate: <small class="navigate"><a href="/log/43c799df6e75?style=spartan">(0)</a> <a href="/log/tip?style=spartan">tip</a> </small> $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'graph/xyzzy?style=spartan' | grep -E $REVLINKS <a href="/log/xyzzy?style=spartan">changelog</a> <a href="/shortlog/xyzzy?style=spartan">shortlog</a> <a href="/file/xyzzy/?style=spartan">files</a> navigate: <small class="navigate"><a href="/graph/43c799df6e75?style=spartan">(0)</a> <a href="/graph/tip?style=spartan">tip</a> </small> <a href="/rev/a7c1559b7bba?style=spartan">second</a> <a href="/rev/43c799df6e75?style=spartan">first</a> navigate: <small class="navigate"><a href="/graph/43c799df6e75?style=spartan">(0)</a> <a href="/graph/tip?style=spartan">tip</a> </small> $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'file/xyzzy?style=spartan' | grep -E $REVLINKS <a href="/log/xyzzy?style=spartan">changelog</a> <a href="/shortlog/xyzzy?style=spartan">shortlog</a> <a href="/graph/xyzzy?style=spartan">graph</a> <a href="/rev/xyzzy?style=spartan">changeset</a> <a href="/archive/xyzzy.zip">zip</a> <h2><a href="/">Mercurial</a> / files for changeset <a href="/rev/a7c1559b7bba">a7c1559b7bba</a>: /</h2> <a href="/file/xyzzy/dir?style=spartan">dir/</a> <a href="/file/xyzzy/dir/?style=spartan"> <td><a href="/file/xyzzy/foo?style=spartan">foo</a></td> $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'file/xyzzy/foo?style=spartan' | grep -E $REVLINKS <a href="/log/xyzzy?style=spartan">changelog</a> <a href="/shortlog/xyzzy?style=spartan">shortlog</a> <a href="/graph/xyzzy?style=spartan">graph</a> <a href="/rev/xyzzy?style=spartan">changeset</a> <a href="/file/xyzzy/?style=spartan">files</a> <a href="/log/xyzzy/foo?style=spartan">revisions</a> <a href="/annotate/xyzzy/foo?style=spartan">annotate</a> <a href="/raw-file/xyzzy/foo">raw</a> <td><a href="/rev/a7c1559b7bba?style=spartan">a7c1559b7bba</a></td> <a href="/file/43c799df6e75/foo?style=spartan"> <td><a href="/file/9d8c40cba617/foo?style=spartan">9d8c40cba617</a></td> $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'log/xyzzy/foo?style=spartan' | grep -E $REVLINKS href="/atom-log/tip/foo" title="Atom feed for test:foo"> href="/rss-log/tip/foo" title="RSS feed for test:foo"> <a href="/file/xyzzy/foo?style=spartan">file</a> <a href="/annotate/xyzzy/foo?style=spartan">annotate</a> <a type="application/rss+xml" href="/rss-log/tip/foo">rss</a> <a type="application/atom+xml" href="/atom-log/tip/foo" title="Atom feed for test:foo">atom</a> <p>navigate: <small class="navigate"><a href="/log/43c799df6e75/foo?style=spartan">(0)</a> <a href="/log/tip/foo?style=spartan">tip</a> </small></p> <th class="firstline"><a href="/rev/a7c1559b7bba?style=spartan">second</a></th> <a href="/file/a7c1559b7bba/foo?style=spartan">a7c1559b7bba</a> <a href="/diff/a7c1559b7bba/foo?style=spartan">(diff)</a> <a href="/annotate/a7c1559b7bba/foo?style=spartan">(annotate)</a> <th class="firstline"><a href="/rev/43c799df6e75?style=spartan">first</a></th> <a href="/file/43c799df6e75/foo?style=spartan">43c799df6e75</a> <a href="/diff/43c799df6e75/foo?style=spartan">(diff)</a> <a href="/annotate/43c799df6e75/foo?style=spartan">(annotate)</a> $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'annotate/xyzzy/foo?style=spartan' | grep -E $REVLINKS <a href="/log/xyzzy?style=spartan">changelog</a> <a href="/shortlog/xyzzy?style=spartan">shortlog</a> <a href="/graph/xyzzy?style=spartan">graph</a> <a href="/rev/xyzzy?style=spartan">changeset</a> <a href="/file/xyzzy/?style=spartan">files</a> <a href="/file/xyzzy/foo?style=spartan">file</a> <a href="/log/xyzzy/foo?style=spartan">revisions</a> <a href="/raw-file/xyzzy/foo">raw</a> <td><a href="/rev/a7c1559b7bba?style=spartan">a7c1559b7bba</a></td> <a href="/annotate/43c799df6e75/foo?style=spartan"> <td><a href="/annotate/9d8c40cba617/foo?style=spartan">9d8c40cba617</a></td> <a href="/annotate/43c799df6e75/foo?style=spartan#l1"> <a href="/annotate/43c799df6e75/foo?style=spartan#l1"> <a href="/diff/43c799df6e75/foo?style=spartan">diff</a> <a href="/rev/43c799df6e75?style=spartan">changeset</a> <a href="/annotate/a7c1559b7bba/foo?style=spartan#l2"> <a href="/annotate/a7c1559b7bba/foo?style=spartan#l2"> <a href="/annotate/43c799df6e75/foo?style=spartan">0</a></div> <a href="/diff/a7c1559b7bba/foo?style=spartan">diff</a> <a href="/rev/a7c1559b7bba?style=spartan">changeset</a> $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'diff/xyzzy/foo?style=spartan' | grep -E $REVLINKS <a href="/log/xyzzy?style=spartan">changelog</a> <a href="/shortlog/xyzzy?style=spartan">shortlog</a> <a href="/graph/xyzzy?style=spartan">graph</a> <a href="/rev/xyzzy?style=spartan">changeset</a> <a href="/file/xyzzy/foo?style=spartan">file</a> <a href="/log/xyzzy/foo?style=spartan">revisions</a> <a href="/annotate/xyzzy/foo?style=spartan">annotate</a> <a href="/raw-diff/xyzzy/foo">raw</a> <td class="revision"><a href="/rev/a7c1559b7bba?style=spartan">a7c1559b7bba</a></td> <td class="parent"><a href="/rev/43c799df6e75?style=spartan">43c799df6e75</a></td> <td class="child"><a href="/rev/9d8c40cba617?style=spartan">9d8c40cba617</a></td> Done $ cat errors.log $ "$TESTDIR/killdaemons.py" $DAEMON_PIDS $ cd ..