#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" 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 directory / @ 2:9d8c40cba617 [up] $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'branches?style=paper' | egrep $REVLINKS $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'tags?style=paper' | egrep $REVLINKS $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'bookmarks?style=paper' | egrep $REVLINKS $ "$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 changeset 1:a7c1559b7bba 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 directory / @ 1:a7c1559b7bba [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
  • view foo @ 1:a7c1559b7bba 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
  • log foo @ 1:a7c1559b7bba 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
  • annotate foo @ 1:a7c1559b7bba 43c799df6e75 9d8c40cba617 log
  • graph
  • changeset
  • browse
  • file
  • latest
  • comparison
  • annotate
  • file log
  • raw
  • diff foo @ 1:a7c1559b7bba 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
  • comparison foo @ 1:a7c1559b7bba 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 directory / @ 2:9d8c40cba617 [up] $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'branches?style=coal' | egrep $REVLINKS $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'tags?style=coal' | egrep $REVLINKS $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'bookmarks?style=coal' | egrep $REVLINKS $ "$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 changeset 1:a7c1559b7bba 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 directory / @ 1:a7c1559b7bba [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
  • view foo @ 1:a7c1559b7bba 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
  • log foo @ 1:a7c1559b7bba 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
  • annotate foo @ 1:a7c1559b7bba 43c799df6e75 9d8c40cba617 log
  • graph
  • changeset
  • browse
  • file
  • latest
  • comparison
  • annotate
  • file log
  • raw
  • diff foo @ 1:a7c1559b7bba 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
  • comparison foo @ 1:a7c1559b7bba 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 default changeset | changelog | files $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'shortlog?style=gitweb' | egrep $REVLINKS changelog | graph | 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 | graph | 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 shortlog | 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 default 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 | graph | files | raw | zip | second xyzzy a7c1559b7bba 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 | graph | 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 | graph | 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 shortlog | 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
  • zip
  • changeset | files changeset | files changeset | files xyzzy changeset | changelog | files default 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 default 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

    a7c1559b7bba
    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
  • latest
  • 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
  • latest
  • revisions
  • diff
  • comparison
  • raw
  • a7c1559b7bba
    9d8c40cba617 graph
  • files
  • file
  • latest
  • 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
  • latest
  • 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 graph 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 graph 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 changelog shortlog 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 graph 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 graph files raw zip a7c1559b7bba 43c799df6e75 9d8c40cba617 foo $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'shortlog/xyzzy?style=spartan' | egrep $REVLINKS changelog graph 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 graph 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 changelog shortlog 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 graph 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 graph 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 graph changeset files file revisions raw a7c1559b7bba 9d8c40cba617 changelog shortlog graph changeset file revisions annotate raw a7c1559b7bba 43c799df6e75 9d8c40cba617 Done $ cat errors.log $ "$TESTDIR/killdaemons.py" $DAEMON_PIDS $ cd ..