# HG changeset patch # User Anton Shestakov # Date 2015-06-03 10:30:25 # Node ID e7455316261d56ebf206f8842d8275a46dcba7fe # Parent 868b7ee8b570afe636959f3c70bf01e0f147b258 tests: test symbolic revision (de)reference in all hgweb styles Right now the way revisions get specified in hgweb urls is ignored, i.e. after revision is resolved, only its node hash (or sometimes local revision number) is used for all links in the templates. So, basically, every page for "tip" revision (or any other symbolic rev id) will dereference it: lose the nice symbolic name by putting node hash/local rev number in its place. The only exception so far is archive links on some pages: /archive/tip.{bz2,gz,zip}. The fact that this dereferencing is neither convenient nor intuitive is reflected in issue2296, issue2826 and issue3594. issue3634 also mentions this. But to fix this it's first needed to demonstrate and test the way templates currently form links. The new test file is separate from other hgweb tests, since it seems big and distinct enough. And it's so big because links are formed in each template independently, so it's necessary to test them all to avoid any inconsistent behavior. 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
  • +

    third default tip

    +

    second xyzzy

    +

    first

    + (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
  • +

    third default tip

    +

    second xyzzy

    +

    first

    + + $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'rev/xyzzy?style=monoblue' | egrep $REVLINKS +
  • graph
  • +
  • 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=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
  • +

    second xyzzy

    +

    first

    + (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 +

    Mercurial / files for changeset 9d8c40cba617: /

    + [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 +

    Mercurial / files for changeset a7c1559b7bba: /

    + [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 ..