diff --git a/tests/test-hgweb-symrev.t b/tests/test-hgweb-symrev.t
new file mode 100644
--- /dev/null
+++ b/tests/test-hgweb-symrev.t
@@ -0,0 +1,980 @@
+#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)'
+
+(De)referencing symbolic revisions (paper)
+
+ $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'shortlog?style=paper' | egrep $REVLINKS
+
graph
+ changeset
+ browse
+ zip
+ less
+ more
+ | rev 2: (0) tip
+ third
+ second
+ first
+ less
+ more
+ | rev 2: (0) tip
+
+ $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'graph?style=paper' | egrep $REVLINKS
+ log
+ changeset
+ browse
+ less
+ more
+ | rev 2: (0) tip
+ less
+ more
+ | rev 2: (0) tip
+
+ $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'file?style=paper' | egrep $REVLINKS
+ log
+ graph
+ changeset
+ zip
+ [up] |
+
+
+
+
+ $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'shortlog?style=paper&rev=all()' | egrep $REVLINKS
+ third
+ second
+ first
+
+ $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'rev/xyzzy?style=paper' | egrep $REVLINKS
+ log
+ graph
+ raw
+ browse
+ zip
+ 43c799df6e75 |
+ 9d8c40cba617 |
+ foo |
+
+ $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'shortlog/xyzzy?style=paper' | egrep $REVLINKS
+ graph
+ changeset
+ browse
+ zip
+ less
+ more
+ | rev 1: (0) tip
+ second
+ first
+ less
+ more
+ | rev 1: (0) tip
+
+ $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'graph/xyzzy?style=paper' | egrep $REVLINKS
+ log
+ changeset
+ browse
+ less
+ more
+ | rev 1: (0) tip
+ less
+ more
+ | rev 1: (0) tip
+
+ $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'file/xyzzy?style=paper' | egrep $REVLINKS
+ log
+ graph
+ changeset
+ zip
+ [up] |
+
+
+
+
+ $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'file/xyzzy/foo?style=paper' | egrep $REVLINKS
+ log
+ graph
+ changeset
+ browse
+ latest
+ diff
+ comparison
+ annotate
+ file log
+ raw
+ 43c799df6e75 |
+ 9d8c40cba617 |
+
+ $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'log/xyzzy/foo?style=paper' | egrep $REVLINKS
+ href="/atom-log/tip/foo" title="Atom feed for test:foo" />
+ href="/rss-log/tip/foo" title="RSS feed for test:foo" />
+ log
+ graph
+ changeset
+ browse
+ file
+ diff
+ comparison
+ annotate
+ raw
+
+ less
+ more
+ | (0) tip
+ second
+ first
+ less
+ more
+ | (0) tip
+
+ $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'annotate/xyzzy/foo?style=paper' | egrep $REVLINKS
+ log
+ graph
+ changeset
+ browse
+ file
+ latest
+ diff
+ comparison
+ file log
+ raw
+ 43c799df6e75 |
+ 9d8c40cba617 |
+ log
+ graph
+ changeset
+ browse
+ file
+ latest
+ comparison
+ annotate
+ file log
+ raw
+ 43c799df6e75 |
+ 9d8c40cba617 |
+
+ $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'comparison/xyzzy/foo?style=paper' | egrep $REVLINKS
+ log
+ graph
+ changeset
+ browse
+ file
+ latest
+ diff
+ annotate
+ file log
+ raw
+ 43c799df6e75 |
+ 9d8c40cba617 |
+
+(De)referencing symbolic revisions (coal)
+
+ $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'shortlog?style=coal' | egrep $REVLINKS
+ graph
+ changeset
+ browse
+ zip
+ less
+ more
+ | rev 2: (0) tip
+ third
+ second
+ first
+ less
+ more
+ | rev 2: (0) tip
+
+ $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'graph?style=coal' | egrep $REVLINKS
+ log
+ changeset
+ browse
+ less
+ more
+ | rev 2: (0) tip
+ less
+ more
+ | rev 2: (0) tip
+
+ $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'file?style=coal' | egrep $REVLINKS
+ log
+ graph
+ changeset
+ zip
+ [up] |
+
+
+
+
+ $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'shortlog?style=coal&rev=all()' | egrep $REVLINKS
+ third
+ second
+ first
+
+ $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'rev/xyzzy?style=coal' | egrep $REVLINKS
+ log
+ graph
+ raw
+ browse
+ zip
+ 43c799df6e75 |
+ 9d8c40cba617 |
+ foo |
+
+ $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'shortlog/xyzzy?style=coal' | egrep $REVLINKS
+ graph
+ changeset
+ browse
+ zip
+ less
+ more
+ | rev 1: (0) tip
+ second
+ first
+ less
+ more
+ | rev 1: (0) tip
+
+ $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'graph/xyzzy?style=coal' | egrep $REVLINKS
+ log
+ changeset
+ browse
+ less
+ more
+ | rev 1: (0) tip
+ less
+ more
+ | rev 1: (0) tip
+
+ $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'file/xyzzy?style=coal' | egrep $REVLINKS
+ log
+ graph
+ changeset
+ zip
+ [up] |
+
+
+
+
+ $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'file/xyzzy/foo?style=coal' | egrep $REVLINKS
+ log
+ graph
+ changeset
+ browse
+ latest
+ diff
+ comparison
+ annotate
+ file log
+ raw
+ 43c799df6e75 |
+ 9d8c40cba617 |
+
+ $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'log/xyzzy/foo?style=coal' | egrep $REVLINKS
+ href="/atom-log/tip/foo" title="Atom feed for test:foo" />
+ href="/rss-log/tip/foo" title="RSS feed for test:foo" />
+ log
+ graph
+ changeset
+ browse
+ file
+ diff
+ comparison
+ annotate
+ raw
+
+ less
+ more
+ | (0) tip
+ second
+ first
+ less
+ more
+ | (0) tip
+
+ $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'annotate/xyzzy/foo?style=coal' | egrep $REVLINKS
+ log
+ graph
+ changeset
+ browse
+ file
+ latest
+ diff
+ comparison
+ file log
+ raw
+ 43c799df6e75 |
+ 9d8c40cba617 |
+ log
+ graph
+ changeset
+ browse
+ file
+ latest
+ comparison
+ annotate
+ file log
+ raw
+ 43c799df6e75 |
+ 9d8c40cba617 |
+
+ $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'comparison/xyzzy/foo?style=coal' | egrep $REVLINKS
+ log
+ graph
+ changeset
+ browse
+ file
+ latest
+ diff
+ annotate
+ file log
+ raw
+ 43c799df6e75 |
+ 9d8c40cba617 |
+
+(De)referencing symbolic revisions (gitweb)
+
+ $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'summary?style=gitweb' | egrep $REVLINKS
+ files | zip |
+
+ changeset |
+ files
+
+ changeset |
+ files
+
+ changeset |
+ files
+ xyzzy |
+ changeset |
+ changelog |
+ files
+ 9d8c40cba617 |
+ changeset |
+ changelog |
+ files
+
+ $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'shortlog?style=gitweb' | egrep $REVLINKS
+ changelog |
+ files | zip |
+
(0) tip
+
+ changeset |
+ files
+
+ changeset |
+ files
+
+ changeset |
+ files
+ (0) tip
+
+ $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'log?style=gitweb' | egrep $REVLINKS
+ shortlog |
+ files | zip |
+ (0) tip
+ Thu, 01 Jan 1970 00:00:00 +0000third default tip
+ changeset
+ Thu, 01 Jan 1970 00:00:00 +0000second xyzzy
+ changeset
+ Thu, 01 Jan 1970 00:00:00 +0000first
+ changeset
+ (0) tip
+
+ $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'graph?style=gitweb' | egrep $REVLINKS
+ changelog |
+ files |
+ less
+ more
+ | (0) tip
+ less
+ more
+ | (0) tip
+
+ $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'tags?style=gitweb' | egrep $REVLINKS
+ tip |
+ changeset |
+ changelog |
+ files
+
+ $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'bookmarks?style=gitweb' | egrep $REVLINKS
+ xyzzy |
+ changeset |
+ changelog |
+ files
+
+ $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'branches?style=gitweb' | egrep $REVLINKS
+ 9d8c40cba617 |
+ changeset |
+ changelog |
+ files
+
+ $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'file?style=gitweb' | egrep $REVLINKS
+ changeset | zip |
+ [up] |
+ dir
+
+ files
+ foo
+ file |
+ revisions |
+ annotate
+
+ $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'shortlog?style=gitweb&rev=all()' | egrep $REVLINKS
+ files | zip
+ Thu, 01 Jan 1970 00:00:00 +0000third default tip
+ changeset
+ Thu, 01 Jan 1970 00:00:00 +0000second xyzzy
+ changeset
+ Thu, 01 Jan 1970 00:00:00 +0000first
+ changeset
+
+ $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'rev/xyzzy?style=gitweb' | egrep $REVLINKS
+ shortlog |
+ changelog |
+ files |
+ raw | zip |
+ second xyzzy
+ 43c799df6e75
+ 9d8c40cba617
+ foo |
+ file |
+ annotate |
+ diff |
+ comparison |
+ revisions
+
+ $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'shortlog/xyzzy?style=gitweb' | egrep $REVLINKS
+ changelog |
+ files | zip |
+
(0) tip
+
+ changeset |
+ files
+
+ changeset |
+ files
+ (0) tip
+
+ $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'log/xyzzy?style=gitweb' | egrep $REVLINKS
+ shortlog |
+ files | zip |
+ (0) tip
+ Thu, 01 Jan 1970 00:00:00 +0000second xyzzy
+ changeset
+ Thu, 01 Jan 1970 00:00:00 +0000first
+ changeset
+ (0) tip
+
+ $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'graph/xyzzy?style=gitweb' | egrep $REVLINKS
+ changelog |
+ files |
+ less
+ more
+ | (0) tip
+ less
+ more
+ | (0) tip
+
+ $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'file/xyzzy?style=gitweb' | egrep $REVLINKS
+ changeset | zip |
+ [up] |
+ dir
+
+ files
+ foo
+ file |
+ revisions |
+ annotate
+
+ $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'file/xyzzy/foo?style=gitweb' | egrep $REVLINKS
+ files |
+ changeset |
+ latest |
+ revisions |
+ annotate |
+ diff |
+ comparison |
+ raw |
+ a7c1559b7bba |
+
+ 9d8c40cba617
+
+ $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'log/xyzzy/foo?style=gitweb' | egrep $REVLINKS
+ file |
+ annotate |
+ diff |
+ comparison |
+ rss |
+ (0) tip
+
+ file |
+ diff |
+ annotate
+
+ file |
+ diff |
+ annotate
+ (0) tip
+
+ $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'annotate/xyzzy/foo?style=gitweb' | egrep $REVLINKS
+ files |
+ changeset |
+ file |
+ latest |
+ revisions |
+ diff |
+ comparison |
+ raw |
+ a7c1559b7bba |
+
+ 9d8c40cba617
+ files |
+ changeset |
+ file |
+ latest |
+ revisions |
+ annotate |
+ comparison |
+ raw |
+ a7c1559b7bba |
+
+ 9d8c40cba617
+
+ $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'comparison/xyzzy/foo?style=gitweb' | egrep $REVLINKS
+ files |
+ changeset |
+ file |
+ latest |
+ revisions |
+ annotate |
+ diff |
+ raw |
+ a7c1559b7bba |
+
+ 9d8c40cba617
+
+(De)referencing symbolic revisions (monoblue)
+
+ $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'summary?style=monoblue' | egrep $REVLINKS
+
+ changeset |
+ files
+
+ changeset |
+ files
+
+ changeset |
+ files
+ xyzzy |
+ changeset |
+ changelog |
+ files
+ 9d8c40cba617 |
+ changeset |
+ changelog |
+ files
+
+ $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'shortlog?style=monoblue' | egrep $REVLINKS
+ graph
+ files
+ zip
+
+ changeset |
+ files
+
+ changeset |
+ files
+
+ changeset |
+ files
+ (0) tip
+
+ $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'log?style=monoblue' | egrep $REVLINKS
+ graph
+ files
+ zip
+
+
+
+ (0) tip
+
+ $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'graph?style=monoblue' | egrep $REVLINKS
+ files
+ less
+ more
+ | (0) tip
+
+ $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'tags?style=monoblue' | egrep $REVLINKS
+ tip |
+ changeset |
+ changelog |
+ files
+
+ $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'bookmarks?style=monoblue' | egrep $REVLINKS
+ xyzzy |
+ changeset |
+ changelog |
+ files
+
+ $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'branches?style=monoblue' | egrep $REVLINKS
+ 9d8c40cba617 |
+ changeset |
+ changelog |
+ files
+
+ $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'file?style=monoblue' | egrep $REVLINKS
+ graph
+ changeset
+ zip
+ [up] |
+ dir
+
+ files |
+ foo |
+ file |
+ revisions |
+ annotate
+
+ $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'shortlog?style=monoblue&rev=all()' | egrep $REVLINKS
+ zip
+
+
+
+
+ $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'rev/xyzzy?style=monoblue' | egrep $REVLINKS
+ graph
+ files
+ raw
+ zip
+
+ 43c799df6e75
+ 9d8c40cba617
+ foo |
+ file |
+ annotate |
+ diff |
+ comparison |
+ revisions
+
+ $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'shortlog/xyzzy?style=monoblue' | egrep $REVLINKS
+ graph
+ files
+ zip
+
+ changeset |
+ files
+
+ changeset |
+ files
+ (0) tip
+
+ $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'log/xyzzy?style=monoblue' | egrep $REVLINKS
+ graph
+ files
+ zip
+
+
+ (0) tip
+
+ $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'graph/xyzzy?style=monoblue' | egrep $REVLINKS
+ files
+ less
+ more
+ | (0) tip
+
+ $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'file/xyzzy?style=monoblue' | egrep $REVLINKS
+ graph
+ changeset
+ zip
+ [up] |
+ dir
+
+ files |
+ foo |
+ file |
+ revisions |
+ annotate
+
+ $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'file/xyzzy/foo?style=monoblue' | egrep $REVLINKS
+ graph
+ files
+ revisions
+ annotate
+ diff
+ comparison
+ raw
+ a7c1559b7bba
+
+ 9d8c40cba617
+
+ $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'log/xyzzy/foo?style=monoblue' | egrep $REVLINKS
+ graph
+ files
+ file
+ annotate
+ diff
+ comparison
+ rss
+
+ file | diff | annotate
+
+ file | diff | annotate
+ (0)tip
+
+ $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'annotate/xyzzy/foo?style=monoblue' | egrep $REVLINKS
+ graph
+ files
+ file
+ revisions
+ diff
+ comparison
+ raw
+ a7c1559b7bba
+
+ 9d8c40cba617
+ graph
+ files
+ file
+ revisions
+ annotate
+ comparison
+ raw
+ a7c1559b7bba
+ 43c799df6e75
+ 9d8c40cba617
+
+ $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'comparison/xyzzy/foo?style=monoblue' | egrep $REVLINKS
+ graph
+ files
+ file
+ revisions
+ annotate
+ diff
+ raw
+ a7c1559b7bba
+ 43c799df6e75
+ 9d8c40cba617
+
+(De)referencing symbolic revisions (spartan)
+
+ $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'shortlog?style=spartan' | egrep $REVLINKS
+ changelog
+ files
+ zip
+ navigate: (0) tip
+ third |
+ second |
+ first |
+ navigate: (0) tip
+
+ $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'log?style=spartan' | egrep $REVLINKS
+ shortlog
+ files
+ zip
+ navigate: (0) tip
+ 9d8c40cba617 |
+ files: |
+ foo |
+ a7c1559b7bba |
+ files: |
+ foo |
+ 43c799df6e75 |
+ files: |
+ dir/bar foo |
+ navigate: (0) tip
+
+ $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'graph?style=spartan' | egrep $REVLINKS
+ files
+ navigate: (0) tip
+ navigate: (0) tip
+
+ $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'tags?style=spartan' | egrep $REVLINKS
+ tip
+
+ $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'branches?style=spartan' | egrep $REVLINKS
+ default
+
+ $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'file?style=spartan' | egrep $REVLINKS
+ changelog
+ shortlog
+ changeset
+ zip
+
+ [up]
+ dir/
+
+ | foo
+
+ $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'shortlog?style=spartan&rev=all()' | egrep $REVLINKS
+ zip
+ | 9d8c40cba617 |
+ a7c1559b7bba
+ files: |
+ foo |
+ a7c1559b7bba |
+ 43c799df6e75
+ 9d8c40cba617 |
+ files: |
+ foo |
+ 43c799df6e75 |
+ a7c1559b7bba |
+ files: |
+ dir/bar foo |
+
+ $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'rev/xyzzy?style=spartan' | egrep $REVLINKS
+ changelog
+ shortlog
+ files
+ raw
+ zip
+ a7c1559b7bba |
+ 43c799df6e75 |
+ 9d8c40cba617 |
+ foo |
+
+ $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'shortlog/xyzzy?style=spartan' | egrep $REVLINKS
+ changelog
+ files
+ zip
+ navigate: (0) tip
+ second |
+ first |
+ navigate: (0) tip
+
+ $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'log/xyzzy?style=spartan' | egrep $REVLINKS
+ shortlog
+ files
+ zip
+ navigate: (0) tip
+ a7c1559b7bba |
+ files: |
+ foo |
+ 43c799df6e75 |
+ files: |
+ dir/bar foo |
+ navigate: (0) tip
+
+ $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'graph/xyzzy?style=spartan' | egrep $REVLINKS
+ files
+ navigate: (0) tip
+ navigate: (0) tip
+
+ $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'file/xyzzy?style=spartan' | egrep $REVLINKS
+ changelog
+ shortlog
+ changeset
+ zip
+
+ [up]
+ dir/
+
+ | foo
+
+ $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'file/xyzzy/foo?style=spartan' | egrep $REVLINKS
+ changelog
+ shortlog
+ changeset
+ files
+ revisions
+ annotate
+ raw
+ | a7c1559b7bba |
+
+ 9d8c40cba617 |
+
+ $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'log/xyzzy/foo?style=spartan' | egrep $REVLINKS
+ href="/atom-log/tip/foo" title="Atom feed for test:foo">
+ href="/rss-log/tip/foo" title="RSS feed for test:foo">
+ file
+ annotate
+ rss
+ atom
+ navigate: (0) tip
+ second |
+ a7c1559b7bba
+ (diff)
+ (annotate)
+ first |
+ 43c799df6e75
+ (diff)
+ (annotate)
+
+ $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'annotate/xyzzy/foo?style=spartan' | egrep $REVLINKS
+ changelog
+ shortlog
+ changeset
+ files
+ file
+ revisions
+ raw
+ a7c1559b7bba |
+
+ 9d8c40cba617 |
+ changelog
+ shortlog
+ changeset
+ file
+ revisions
+ annotate
+ raw
+ a7c1559b7bba |
+ 43c799df6e75 |
+ 9d8c40cba617 |
+
+Done
+
+ $ cat errors.log
+ $ "$TESTDIR/killdaemons.py" $DAEMON_PIDS
+ $ cd ..