]> git.lizzy.rs Git - plan9front.git/commitdiff
hg: install hgweb templates
authorcinap_lenrek <cinap_lenrek@felloff.net>
Fri, 13 Mar 2015 17:30:59 +0000 (18:30 +0100)
committercinap_lenrek <cinap_lenrek@felloff.net>
Fri, 13 Mar 2015 17:30:59 +0000 (18:30 +0100)
127 files changed:
sys/lib/python/mercurial/templates/atom/changelog.tmpl [new file with mode: 0644]
sys/lib/python/mercurial/templates/atom/changelogentry.tmpl [new file with mode: 0644]
sys/lib/python/mercurial/templates/atom/error.tmpl [new file with mode: 0644]
sys/lib/python/mercurial/templates/atom/filelog.tmpl [new file with mode: 0644]
sys/lib/python/mercurial/templates/atom/header.tmpl [new file with mode: 0644]
sys/lib/python/mercurial/templates/atom/map [new file with mode: 0644]
sys/lib/python/mercurial/templates/atom/tagentry.tmpl [new file with mode: 0644]
sys/lib/python/mercurial/templates/atom/tags.tmpl [new file with mode: 0644]
sys/lib/python/mercurial/templates/coal/header.tmpl [new file with mode: 0644]
sys/lib/python/mercurial/templates/coal/map [new file with mode: 0644]
sys/lib/python/mercurial/templates/gitweb/branches.tmpl [new file with mode: 0644]
sys/lib/python/mercurial/templates/gitweb/changelog.tmpl [new file with mode: 0644]
sys/lib/python/mercurial/templates/gitweb/changelogentry.tmpl [new file with mode: 0644]
sys/lib/python/mercurial/templates/gitweb/changeset.tmpl [new file with mode: 0644]
sys/lib/python/mercurial/templates/gitweb/error.tmpl [new file with mode: 0644]
sys/lib/python/mercurial/templates/gitweb/fileannotate.tmpl [new file with mode: 0644]
sys/lib/python/mercurial/templates/gitweb/filediff.tmpl [new file with mode: 0644]
sys/lib/python/mercurial/templates/gitweb/filelog.tmpl [new file with mode: 0644]
sys/lib/python/mercurial/templates/gitweb/filerevision.tmpl [new file with mode: 0644]
sys/lib/python/mercurial/templates/gitweb/footer.tmpl [new file with mode: 0644]
sys/lib/python/mercurial/templates/gitweb/graph.tmpl [new file with mode: 0644]
sys/lib/python/mercurial/templates/gitweb/header.tmpl [new file with mode: 0644]
sys/lib/python/mercurial/templates/gitweb/index.tmpl [new file with mode: 0644]
sys/lib/python/mercurial/templates/gitweb/manifest.tmpl [new file with mode: 0644]
sys/lib/python/mercurial/templates/gitweb/map [new file with mode: 0644]
sys/lib/python/mercurial/templates/gitweb/notfound.tmpl [new file with mode: 0644]
sys/lib/python/mercurial/templates/gitweb/search.tmpl [new file with mode: 0644]
sys/lib/python/mercurial/templates/gitweb/shortlog.tmpl [new file with mode: 0644]
sys/lib/python/mercurial/templates/gitweb/summary.tmpl [new file with mode: 0644]
sys/lib/python/mercurial/templates/gitweb/tags.tmpl [new file with mode: 0644]
sys/lib/python/mercurial/templates/map-cmdline.changelog [new file with mode: 0644]
sys/lib/python/mercurial/templates/map-cmdline.compact [new file with mode: 0644]
sys/lib/python/mercurial/templates/map-cmdline.default [new file with mode: 0644]
sys/lib/python/mercurial/templates/monoblue/branches.tmpl [new file with mode: 0644]
sys/lib/python/mercurial/templates/monoblue/changelog.tmpl [new file with mode: 0644]
sys/lib/python/mercurial/templates/monoblue/changelogentry.tmpl [new file with mode: 0644]
sys/lib/python/mercurial/templates/monoblue/changeset.tmpl [new file with mode: 0644]
sys/lib/python/mercurial/templates/monoblue/error.tmpl [new file with mode: 0644]
sys/lib/python/mercurial/templates/monoblue/fileannotate.tmpl [new file with mode: 0644]
sys/lib/python/mercurial/templates/monoblue/filediff.tmpl [new file with mode: 0644]
sys/lib/python/mercurial/templates/monoblue/filelog.tmpl [new file with mode: 0644]
sys/lib/python/mercurial/templates/monoblue/filerevision.tmpl [new file with mode: 0644]
sys/lib/python/mercurial/templates/monoblue/footer.tmpl [new file with mode: 0644]
sys/lib/python/mercurial/templates/monoblue/graph.tmpl [new file with mode: 0644]
sys/lib/python/mercurial/templates/monoblue/header.tmpl [new file with mode: 0644]
sys/lib/python/mercurial/templates/monoblue/index.tmpl [new file with mode: 0644]
sys/lib/python/mercurial/templates/monoblue/manifest.tmpl [new file with mode: 0644]
sys/lib/python/mercurial/templates/monoblue/map [new file with mode: 0644]
sys/lib/python/mercurial/templates/monoblue/notfound.tmpl [new file with mode: 0644]
sys/lib/python/mercurial/templates/monoblue/search.tmpl [new file with mode: 0644]
sys/lib/python/mercurial/templates/monoblue/shortlog.tmpl [new file with mode: 0644]
sys/lib/python/mercurial/templates/monoblue/summary.tmpl [new file with mode: 0644]
sys/lib/python/mercurial/templates/monoblue/tags.tmpl [new file with mode: 0644]
sys/lib/python/mercurial/templates/paper/branches.tmpl [new file with mode: 0644]
sys/lib/python/mercurial/templates/paper/changeset.tmpl [new file with mode: 0644]
sys/lib/python/mercurial/templates/paper/error.tmpl [new file with mode: 0644]
sys/lib/python/mercurial/templates/paper/fileannotate.tmpl [new file with mode: 0644]
sys/lib/python/mercurial/templates/paper/filediff.tmpl [new file with mode: 0644]
sys/lib/python/mercurial/templates/paper/filelog.tmpl [new file with mode: 0644]
sys/lib/python/mercurial/templates/paper/filelogentry.tmpl [new file with mode: 0644]
sys/lib/python/mercurial/templates/paper/filerevision.tmpl [new file with mode: 0644]
sys/lib/python/mercurial/templates/paper/footer.tmpl [new file with mode: 0644]
sys/lib/python/mercurial/templates/paper/graph.tmpl [new file with mode: 0644]
sys/lib/python/mercurial/templates/paper/header.tmpl [new file with mode: 0644]
sys/lib/python/mercurial/templates/paper/index.tmpl [new file with mode: 0644]
sys/lib/python/mercurial/templates/paper/manifest.tmpl [new file with mode: 0644]
sys/lib/python/mercurial/templates/paper/map [new file with mode: 0644]
sys/lib/python/mercurial/templates/paper/notfound.tmpl [new file with mode: 0644]
sys/lib/python/mercurial/templates/paper/search.tmpl [new file with mode: 0644]
sys/lib/python/mercurial/templates/paper/shortlog.tmpl [new file with mode: 0644]
sys/lib/python/mercurial/templates/paper/shortlogentry.tmpl [new file with mode: 0644]
sys/lib/python/mercurial/templates/paper/tags.tmpl [new file with mode: 0644]
sys/lib/python/mercurial/templates/raw/changeset.tmpl [new file with mode: 0644]
sys/lib/python/mercurial/templates/raw/error.tmpl [new file with mode: 0644]
sys/lib/python/mercurial/templates/raw/fileannotate.tmpl [new file with mode: 0644]
sys/lib/python/mercurial/templates/raw/filediff.tmpl [new file with mode: 0644]
sys/lib/python/mercurial/templates/raw/index.tmpl [new file with mode: 0644]
sys/lib/python/mercurial/templates/raw/manifest.tmpl [new file with mode: 0644]
sys/lib/python/mercurial/templates/raw/map [new file with mode: 0644]
sys/lib/python/mercurial/templates/raw/notfound.tmpl [new file with mode: 0644]
sys/lib/python/mercurial/templates/rss/changelog.tmpl [new file with mode: 0644]
sys/lib/python/mercurial/templates/rss/changelogentry.tmpl [new file with mode: 0644]
sys/lib/python/mercurial/templates/rss/error.tmpl [new file with mode: 0644]
sys/lib/python/mercurial/templates/rss/filelog.tmpl [new file with mode: 0644]
sys/lib/python/mercurial/templates/rss/filelogentry.tmpl [new file with mode: 0644]
sys/lib/python/mercurial/templates/rss/header.tmpl [new file with mode: 0644]
sys/lib/python/mercurial/templates/rss/map [new file with mode: 0644]
sys/lib/python/mercurial/templates/rss/tagentry.tmpl [new file with mode: 0644]
sys/lib/python/mercurial/templates/rss/tags.tmpl [new file with mode: 0644]
sys/lib/python/mercurial/templates/spartan/branches.tmpl [new file with mode: 0644]
sys/lib/python/mercurial/templates/spartan/changelog.tmpl [new file with mode: 0644]
sys/lib/python/mercurial/templates/spartan/changelogentry.tmpl [new file with mode: 0644]
sys/lib/python/mercurial/templates/spartan/changeset.tmpl [new file with mode: 0644]
sys/lib/python/mercurial/templates/spartan/error.tmpl [new file with mode: 0644]
sys/lib/python/mercurial/templates/spartan/fileannotate.tmpl [new file with mode: 0644]
sys/lib/python/mercurial/templates/spartan/filediff.tmpl [new file with mode: 0644]
sys/lib/python/mercurial/templates/spartan/filelog.tmpl [new file with mode: 0644]
sys/lib/python/mercurial/templates/spartan/filelogentry.tmpl [new file with mode: 0644]
sys/lib/python/mercurial/templates/spartan/filerevision.tmpl [new file with mode: 0644]
sys/lib/python/mercurial/templates/spartan/footer.tmpl [new file with mode: 0644]
sys/lib/python/mercurial/templates/spartan/graph.tmpl [new file with mode: 0644]
sys/lib/python/mercurial/templates/spartan/header.tmpl [new file with mode: 0644]
sys/lib/python/mercurial/templates/spartan/index.tmpl [new file with mode: 0644]
sys/lib/python/mercurial/templates/spartan/manifest.tmpl [new file with mode: 0644]
sys/lib/python/mercurial/templates/spartan/map [new file with mode: 0644]
sys/lib/python/mercurial/templates/spartan/notfound.tmpl [new file with mode: 0644]
sys/lib/python/mercurial/templates/spartan/search.tmpl [new file with mode: 0644]
sys/lib/python/mercurial/templates/spartan/shortlog.tmpl [new file with mode: 0644]
sys/lib/python/mercurial/templates/spartan/shortlogentry.tmpl [new file with mode: 0644]
sys/lib/python/mercurial/templates/spartan/tags.tmpl [new file with mode: 0644]
sys/lib/python/mercurial/templates/static/background.png [new file with mode: 0644]
sys/lib/python/mercurial/templates/static/coal-file.png [new file with mode: 0644]
sys/lib/python/mercurial/templates/static/coal-folder.png [new file with mode: 0644]
sys/lib/python/mercurial/templates/static/excanvas.js [new file with mode: 0644]
sys/lib/python/mercurial/templates/static/graph.js [new file with mode: 0644]
sys/lib/python/mercurial/templates/static/hgicon.png [new file with mode: 0644]
sys/lib/python/mercurial/templates/static/hglogo.png [new file with mode: 0644]
sys/lib/python/mercurial/templates/static/style-coal.css [new file with mode: 0644]
sys/lib/python/mercurial/templates/static/style-gitweb.css [new file with mode: 0644]
sys/lib/python/mercurial/templates/static/style-monoblue.css [new file with mode: 0644]
sys/lib/python/mercurial/templates/static/style-paper.css [new file with mode: 0644]
sys/lib/python/mercurial/templates/static/style.css [new file with mode: 0644]
sys/lib/python/mercurial/templates/template-vars.txt [new file with mode: 0644]
sys/src/cmd/hg/hgweb.cgi
sys/src/cmd/hg/hgwebdir.cgi
sys/src/cmd/hg/mercurial/localrepo.py
sys/src/cmd/hg/mkfile

diff --git a/sys/lib/python/mercurial/templates/atom/changelog.tmpl b/sys/lib/python/mercurial/templates/atom/changelog.tmpl
new file mode 100644 (file)
index 0000000..29902ab
--- /dev/null
@@ -0,0 +1,10 @@
+{header}
+ <!-- Changelog -->
+ <id>{urlbase}{url}</id>
+ <link rel="self" href="{urlbase}{url}atom-log"/>
+ <link rel="alternate" href="{urlbase}{url}"/>
+ <title>{repo|escape} Changelog</title>
+ {latestentry%feedupdated}
+
+{entries%changelogentry}
+</feed>
diff --git a/sys/lib/python/mercurial/templates/atom/changelogentry.tmpl b/sys/lib/python/mercurial/templates/atom/changelogentry.tmpl
new file mode 100644 (file)
index 0000000..02c2e9b
--- /dev/null
@@ -0,0 +1,16 @@
+ <entry>
+  <title>{desc|strip|firstline|strip|escape|nonempty}</title>
+  <id>{urlbase}{url}#changeset-{node}</id>
+  <link href="{urlbase}{url}rev/{node}"/>
+  <author>
+   <name>{author|person|escape}</name>
+   <email>{author|email|obfuscate}</email>
+  </author>
+  <updated>{date|rfc3339date}</updated>
+  <published>{date|rfc3339date}</published>
+  <content type="xhtml">
+   <div xmlns="http://www.w3.org/1999/xhtml">
+    <pre xml:space="preserve">{desc|escape|nonempty}</pre>
+   </div>
+  </content>
+ </entry>
diff --git a/sys/lib/python/mercurial/templates/atom/error.tmpl b/sys/lib/python/mercurial/templates/atom/error.tmpl
new file mode 100644 (file)
index 0000000..5735fba
--- /dev/null
@@ -0,0 +1,17 @@
+{header}
+ <!-- Error -->
+ <id>{urlbase}{url}</id>
+ <link rel="self" href="{urlbase}{url}atom-log"/>
+ <link rel="alternate" href="{urlbase}{url}"/>
+ <title>Error</title>
+ <updated>1970-01-01T00:00:00+00:00</updated>
+ <entry>
+  <title>Error</title>
+  <id>http://mercurial.selenic.com/#error</id>
+  <author>
+    <name>mercurial</name>
+  </author>
+  <updated>1970-01-01T00:00:00+00:00</updated>
+  <content type="text">{error|escape}</content>
+ </entry>
+</feed>
diff --git a/sys/lib/python/mercurial/templates/atom/filelog.tmpl b/sys/lib/python/mercurial/templates/atom/filelog.tmpl
new file mode 100644 (file)
index 0000000..99d4e9b
--- /dev/null
@@ -0,0 +1,8 @@
+{header}
+ <id>{urlbase}{url}atom-log/tip/{file|escape}</id>
+ <link rel="self" href="{urlbase}{url}atom-log/tip/{file|urlescape}"/>
+ <title>{repo|escape}: {file|escape} history</title>
+ {latestentry%feedupdated}
+
+{entries%changelogentry}
+</feed>
diff --git a/sys/lib/python/mercurial/templates/atom/header.tmpl b/sys/lib/python/mercurial/templates/atom/header.tmpl
new file mode 100644 (file)
index 0000000..90ffceb
--- /dev/null
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="{encoding}"?>
+<feed xmlns="http://www.w3.org/2005/Atom">
\ No newline at end of file
diff --git a/sys/lib/python/mercurial/templates/atom/map b/sys/lib/python/mercurial/templates/atom/map
new file mode 100644 (file)
index 0000000..c016b55
--- /dev/null
@@ -0,0 +1,11 @@
+default = 'changelog'
+feedupdated = '<updated>{date|rfc3339date}</updated>'
+mimetype = 'application/atom+xml; charset={encoding}'
+header = header.tmpl
+changelog = changelog.tmpl
+changelogentry = changelogentry.tmpl
+filelog = filelog.tmpl
+filelogentry = filelogentry.tmpl
+tags = tags.tmpl
+tagentry = tagentry.tmpl
+error = error.tmpl
diff --git a/sys/lib/python/mercurial/templates/atom/tagentry.tmpl b/sys/lib/python/mercurial/templates/atom/tagentry.tmpl
new file mode 100644 (file)
index 0000000..776d8a9
--- /dev/null
@@ -0,0 +1,8 @@
+ <entry>
+  <title>{tag|escape}</title>
+  <link rel="alternate" href="{urlbase}{url}rev/{node}"/>
+  <id>{urlbase}{url}#tag-{node}</id>
+  <updated>{date|rfc3339date}</updated>
+  <published>{date|rfc3339date}</published>
+  <content type="text">{tag|strip|escape}</content>
+ </entry>
diff --git a/sys/lib/python/mercurial/templates/atom/tags.tmpl b/sys/lib/python/mercurial/templates/atom/tags.tmpl
new file mode 100644 (file)
index 0000000..82294ec
--- /dev/null
@@ -0,0 +1,11 @@
+{header}
+ <id>{urlbase}{url}</id>
+ <link rel="self" href="{urlbase}{url}atom-tags"/>
+ <link rel="alternate" href="{urlbase}{url}tags"/>
+ <title>{repo|escape}: tags</title>
+ <summary>{repo|escape} tag history</summary>
+ <author><name>Mercurial SCM</name></author>
+ {latestentry%feedupdated}
+
+{entriesnotip%tagentry}
+</feed>
diff --git a/sys/lib/python/mercurial/templates/coal/header.tmpl b/sys/lib/python/mercurial/templates/coal/header.tmpl
new file mode 100644 (file)
index 0000000..ed0f42d
--- /dev/null
@@ -0,0 +1,6 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US">
+<head>
+<link rel="icon" href="{staticurl}hgicon.png" type="image/png" />
+<meta name="robots" content="index, nofollow" />
+<link rel="stylesheet" href="{staticurl}style-coal.css" type="text/css" />
diff --git a/sys/lib/python/mercurial/templates/coal/map b/sys/lib/python/mercurial/templates/coal/map
new file mode 100644 (file)
index 0000000..430580b
--- /dev/null
@@ -0,0 +1,191 @@
+default = 'shortlog'
+
+mimetype = 'text/html; charset={encoding}'
+header = header.tmpl
+footer = ../paper/footer.tmpl
+search = ../paper/search.tmpl
+
+changelog = ../paper/shortlog.tmpl
+shortlog = ../paper/shortlog.tmpl
+shortlogentry = ../paper/shortlogentry.tmpl
+graph = ../paper/graph.tmpl
+
+naventry = '<a href="{url}log/{node|short}{sessionvars%urlparameter}">{label|escape}</a> '
+navshortentry = '<a href="{url}shortlog/{node|short}{sessionvars%urlparameter}">{label|escape}</a> '
+navgraphentry = '<a href="{url}graph/{node|short}{sessionvars%urlparameter}">{label|escape}</a> '
+filenaventry = '<a href="{url}log/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{label|escape}</a> '
+filedifflink = '<a href="{url}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{file|escape}</a> '
+filenodelink = '<a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{file|escape}</a> '
+filenolink = '{file|escape} '
+fileellipses = '...'
+changelogentry = ../paper/shortlogentry.tmpl
+searchentry = ../paper/shortlogentry.tmpl
+changeset = ../paper/changeset.tmpl
+manifest = ../paper/manifest.tmpl
+
+direntry = '
+  <tr class="fileline parity{parity}">
+    <td class="name">
+      <a href="{url}file/{node|short}{path|urlescape}{sessionvars%urlparameter}">
+        <img src="{staticurl}coal-folder.png" alt="dir."/> {basename|escape}/
+      </a>
+      <a href="{url}file/{node|short}{path|urlescape}/{emptydirs|urlescape}{sessionvars%urlparameter}">
+        {emptydirs|escape}
+      </a>
+    </td>
+    <td class="size"></td>
+    <td class="permissions">drwxr-xr-x</td>
+  </tr>'
+
+fileentry = '
+  <tr class="fileline parity{parity}">
+    <td class="filename">
+      <a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">
+        <img src="{staticurl}coal-file.png" alt="file"/> {basename|escape}
+      </a>
+    </td>
+    <td class="size">{size}</td>
+    <td class="permissions">{permissions|permissions}</td>
+  </tr>'
+
+filerevision = ../paper/filerevision.tmpl
+fileannotate = ../paper/fileannotate.tmpl
+filediff = ../paper/filediff.tmpl
+filelog = ../paper/filelog.tmpl
+fileline = '
+  <div class="parity{parity} source"><a href="#{lineid}" id="{lineid}">{linenumber}</a> {line|escape}</div>'
+filelogentry = ../paper/filelogentry.tmpl
+
+annotateline = '
+  <tr class="parity{parity}">
+    <td class="annotate">
+      <a href="{url}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}#{targetline}"
+         title="{node|short}: {desc|escape|firstline}">{author|user}@{rev}</a>
+    </td>
+    <td class="source"><a href="#{lineid}" id="{lineid}">{linenumber}</a> {line|escape}</td>
+  </tr>'
+
+diffblock = '<div class="source bottomline parity{parity}"><pre>{lines}</pre></div>'
+difflineplus = '<a href="#{lineid}" id="{lineid}">{linenumber}</a> <span class="plusline">{line|escape}</span>'
+difflineminus = '<a href="#{lineid}" id="{lineid}">{linenumber}</a> <span class="minusline">{line|escape}</span>'
+difflineat = '<a href="#{lineid}" id="{lineid}">{linenumber}</a> <span class="atline">{line|escape}</span>'
+diffline = '<a href="#{lineid}" id="{lineid}">{linenumber}</a> {line|escape}'
+
+changelogparent = '
+  <tr>
+    <th class="parent">parent {rev}:</th>
+    <td class="parent"><a href="{url}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a></td>
+  </tr>'
+
+changesetparent = '<a href="{url}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a> '
+
+filerevparent = '<a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{rename%filerename}{node|short}</a> '
+filerevchild = '<a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{node|short}</a> '
+
+filerename = '{file|escape}@'
+filelogrename = '
+  <tr>
+    <th>base:</th>
+    <td>
+      <a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">
+        {file|escape}@{node|short}
+      </a>
+    </td>
+  </tr>'
+fileannotateparent = '
+  <tr>
+    <td class="metatag">parent:</td>
+    <td>
+      <a href="{url}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">
+        {rename%filerename}{node|short}
+      </a>
+    </td>
+  </tr>'
+changesetchild = ' <a href="{url}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a>'
+changelogchild = '
+  <tr>
+    <th class="child">child</th>
+    <td class="child">
+      <a href="{url}rev/{node|short}{sessionvars%urlparameter}">
+        {node|short}
+      </a>
+    </td>
+  </tr>'
+fileannotatechild = '
+  <tr>
+    <td class="metatag">child:</td>
+    <td>
+      <a href="{url}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">
+        {node|short}
+      </a>
+    </td>
+  </tr>'
+tags = ../paper/tags.tmpl
+tagentry = '
+  <tr class="tagEntry parity{parity}">
+    <td>
+      <a href="{url}rev/{node|short}{sessionvars%urlparameter}">
+        {tag|escape}
+      </a>
+    </td>
+    <td class="node">
+      {node|short}
+    </td>
+  </tr>'
+branches = ../paper/branches.tmpl
+branchentry = '
+  <tr class="tagEntry parity{parity}">
+    <td>
+      <a href="{url}shortlog/{node|short}{sessionvars%urlparameter}" class="{status}">
+        {branch|escape}
+      </a>
+    </td>
+    <td class="node">
+      {node|short}
+    </td>
+  </tr>'
+changelogtag = '<span class="tag">{name|escape}</span> '
+changesettag = '<span class="tag">{tag|escape}</span> '
+changelogbranchhead = '<span class="branchhead">{name|escape}</span> '
+changelogbranchname = '<span class="branchname">{name|escape}</span> ' 
+
+filediffparent = '
+  <tr>
+    <th class="parent">parent {rev}:</th>
+    <td class="parent"><a href="{url}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a></td>
+  </tr>'
+filelogparent = '
+  <tr>
+    <th>parent {rev}:</th>
+    <td><a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{node|short}</a></td>
+  </tr>'
+filediffchild = '
+  <tr>
+    <th class="child">child {rev}:</th>
+    <td class="child"><a href="{url}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a>
+  </td>
+  </tr>'
+filelogchild = '
+  <tr>
+    <th>child {rev}:</th>
+    <td><a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{node|short}</a></td>
+  </tr>'
+
+indexentry = '
+  <tr class="parity{parity}">
+    <td><a href="{url}{sessionvars%urlparameter}">{name|escape}</a></td>
+    <td>{description}</td>
+    <td>{contact|obfuscate}</td>
+    <td class="age">{lastchange|age} ago</td>
+    <td class="indexlinks">{archives%indexarchiveentry}</td>
+  </tr>\n'
+indexarchiveentry = '<a href="{url}archive/{node|short}{extension|urlescape}">&nbsp;&darr;{type|escape}</a>'
+index = ../paper/index.tmpl
+archiveentry = '
+  <li>
+    <a href="{url}archive/{node|short}{extension|urlescape}">{type|escape}</a>
+  </li>'
+notfound = ../paper/notfound.tmpl
+error = ../paper/error.tmpl
+urlparameter = '{separator}{name}={value|urlescape}'
+hiddenformentry = '<input type="hidden" name="{name}" value="{value|escape}" />'
diff --git a/sys/lib/python/mercurial/templates/gitweb/branches.tmpl b/sys/lib/python/mercurial/templates/gitweb/branches.tmpl
new file mode 100644 (file)
index 0000000..80ceb7e
--- /dev/null
@@ -0,0 +1,30 @@
+{header}
+<title>{repo|escape}: Branches</title>
+<link rel="alternate" type="application/atom+xml"
+   href="{url}atom-tags" title="Atom feed for {repo|escape}"/>
+<link rel="alternate" type="application/rss+xml"
+   href="{url}rss-tags" title="RSS feed for {repo|escape}"/>
+</head>
+<body>
+
+<div class="page_header">
+<a href="http://mercurial.selenic.com/" title="Mercurial" style="float: right;">Mercurial</a><a href="{url}summary{sessionvars%urlparameter}">{repo|escape}</a> / branches
+</div>
+
+<div class="page_nav">
+<a href="{url}summary{sessionvars%urlparameter}">summary</a> |
+<a href="{url}shortlog{sessionvars%urlparameter}">shortlog</a> |
+<a href="{url}log{sessionvars%urlparameter}">changelog</a> |
+<a href="{url}graph{sessionvars%urlparameter}">graph</a> |
+<a href="{url}tags{sessionvars%urlparameter}">tags</a> |
+branches |
+<a href="{url}file/{node|short}{sessionvars%urlparameter}">files</a>
+<br/>
+</div>
+
+<div class="title">&nbsp;</div>
+<table cellspacing="0">
+{entries%branchentry}
+</table>
+
+{footer}
diff --git a/sys/lib/python/mercurial/templates/gitweb/changelog.tmpl b/sys/lib/python/mercurial/templates/gitweb/changelog.tmpl
new file mode 100644 (file)
index 0000000..2b587a2
--- /dev/null
@@ -0,0 +1,39 @@
+{header}
+<title>{repo|escape}: Changelog</title>
+<link rel="alternate" type="application/atom+xml"
+   href="{url}atom-log" title="Atom feed for {repo|escape}"/>
+<link rel="alternate" type="application/rss+xml"
+   href="{url}rss-log" title="RSS feed for {repo|escape}"/>
+</head>
+<body>
+
+<div class="page_header">
+<a href="http://mercurial.selenic.com/" title="Mercurial" style="float: right;">Mercurial</a><a href="{url}summary{sessionvars%urlparameter}">{repo|escape}</a> / changelog
+</div>
+
+<form action="{url}log">
+{sessionvars%hiddenformentry}
+<div class="search">
+<input type="text" name="rev"  />
+</div>
+</form>
+
+<div class="page_nav">
+<a href="{url}summary{sessionvars%urlparameter}">summary</a> |
+<a href="{url}shortlog/{rev}{sessionvars%urlparameter}">shortlog</a> |
+changelog |
+<a href="{url}graph{sessionvars%urlparameter}">graph</a> |
+<a href="{url}tags{sessionvars%urlparameter}">tags</a> |
+<a href="{url}branches{sessionvars%urlparameter}">branches</a> |
+<a href="{url}file/{node|short}{sessionvars%urlparameter}">files</a>{archives%archiveentry}
+<br/>
+{changenav%naventry}<br/>
+</div>
+
+{entries%changelogentry}
+
+<div class="page_nav">
+{changenav%naventry}<br/>
+</div>
+
+{footer}
diff --git a/sys/lib/python/mercurial/templates/gitweb/changelogentry.tmpl b/sys/lib/python/mercurial/templates/gitweb/changelogentry.tmpl
new file mode 100644 (file)
index 0000000..2a7c3cb
--- /dev/null
@@ -0,0 +1,14 @@
+<div>
+<a class="title" href="{url}rev/{node|short}{sessionvars%urlparameter}"><span class="age">{date|age} ago</span>{desc|strip|firstline|escape|nonempty}<span class="logtags"> {inbranch%inbranchtag}{branches%branchtag}{tags%tagtag}</span></a>
+</div>
+<div class="title_text">
+<div class="log_link">
+<a href="{url}rev/{node|short}{sessionvars%urlparameter}">changeset</a><br/>
+</div>
+<i>{author|obfuscate} [{date|rfc822date}] rev {rev}</i><br/>
+</div>
+<div class="log_body">
+{desc|strip|escape|addbreaks|nonempty}
+<br/>
+<br/>
+</div>
diff --git a/sys/lib/python/mercurial/templates/gitweb/changeset.tmpl b/sys/lib/python/mercurial/templates/gitweb/changeset.tmpl
new file mode 100644 (file)
index 0000000..2487dd6
--- /dev/null
@@ -0,0 +1,50 @@
+{header}
+<title>{repo|escape}: changeset {rev}:{node|short}</title>
+<link rel="alternate" type="application/atom+xml"
+   href="{url}atom-log" title="Atom feed for {repo|escape}"/>
+<link rel="alternate" type="application/rss+xml"
+   href="{url}rss-log" title="RSS feed for {repo|escape}"/>
+</head>
+<body>
+
+<div class="page_header">
+<a href="http://mercurial.selenic.com/" title="Mercurial" style="float: right;">Mercurial</a><a href="{url}summary{sessionvars%urlparameter}">{repo|escape}</a> / changeset
+</div>
+
+<div class="page_nav">
+<a href="{url}summary{sessionvars%urlparameter}">summary</a> |
+<a href="{url}shortlog/{rev}{sessionvars%urlparameter}">shortlog</a> |
+<a href="{url}log/{rev}{sessionvars%urlparameter}">changelog</a> |
+<a href="{url}graph{sessionvars%urlparameter}">graph</a> |
+<a href="{url}tags{sessionvars%urlparameter}">tags</a> |
+<a href="{url}branches{sessionvars%urlparameter}">branches</a> |
+<a href="{url}file/{node|short}{sessionvars%urlparameter}">files</a> |
+changeset |
+<a href="{url}raw-rev/{node|short}">raw</a> {archives%archiveentry}<br/>
+</div>
+
+<div>
+<a class="title" href="{url}raw-rev/{node|short}">{desc|strip|escape|firstline|nonempty} <span class="logtags">{inbranch%inbranchtag}{branches%branchtag}{tags%tagtag}</span></a>
+</div>
+<div class="title_text">
+<table cellspacing="0">
+<tr><td>author</td><td>{author|obfuscate}</td></tr>
+<tr><td></td><td>{date|date} ({date|age} ago)</td></tr>
+{branch%changesetbranch}
+<tr><td>changeset {rev}</td><td style="font-family:monospace">{node|short}</td></tr>
+{parent%changesetparent}
+{child%changesetchild}
+</table></div>
+
+<div class="page_body">
+{desc|strip|escape|addbreaks|nonempty}
+</div>
+<div class="list_head"></div>
+<div class="title_text">
+<table cellspacing="0">
+{files}
+</table></div>
+
+<div class="page_body">{diff}</div>
+
+{footer}
diff --git a/sys/lib/python/mercurial/templates/gitweb/error.tmpl b/sys/lib/python/mercurial/templates/gitweb/error.tmpl
new file mode 100644 (file)
index 0000000..25b71fc
--- /dev/null
@@ -0,0 +1,25 @@
+{header}
+<title>{repo|escape}: Error</title>
+<link rel="alternate" type="application/atom+xml"
+   href="{url}atom-log" title="Atom feed for {repo|escape}"/>
+<link rel="alternate" type="application/rss+xml"
+   href="{url}rss-log" title="RSS feed for {repo|escape}"/>
+</head>
+<body>
+
+<div class="page_header">
+<a href="http://mercurial.selenic.com/" title="Mercurial" style="float: right;">Mercurial</a><a href="{url}summary{sessionvars%urlparameter}">{repo|escape}</a> / error
+</div>
+
+<div class="page_nav">
+<a href="{url}summary{sessionvars%urlparameter}">summary</a> | <a href="{url}shortlog{sessionvars%urlparameter}">shortlog</a> | <a href="{url}log{sessionvars%urlparameter}">changelog</a> | <a href="{url}tags{sessionvars%urlparameter}">tags</a> | <a href="{url}file/{node|short}{sessionvars%urlparameter}">files</a><br/>
+</div>
+
+<div class="page_body">
+<br/>
+<i>An error occurred while processing your request</i><br/>
+<br/>
+{error|escape}
+</div>
+
+{footer}
diff --git a/sys/lib/python/mercurial/templates/gitweb/fileannotate.tmpl b/sys/lib/python/mercurial/templates/gitweb/fileannotate.tmpl
new file mode 100644 (file)
index 0000000..87e8cc3
--- /dev/null
@@ -0,0 +1,61 @@
+{header}
+<title>{repo|escape}: {file|escape}@{node|short} (annotated)</title>
+<link rel="alternate" type="application/atom+xml"
+   href="{url}atom-log" title="Atom feed for {repo|escape}"/>
+<link rel="alternate" type="application/rss+xml"
+   href="{url}rss-log" title="RSS feed for {repo|escape}"/>
+</head>
+<body>
+
+<div class="page_header">
+<a href="http://mercurial.selenic.com/" title="Mercurial" style="float: right;">Mercurial</a><a href="{url}summary{sessionvars%urlparameter}">{repo|escape}</a> / annotate
+</div>
+
+<div class="page_nav">
+<a href="{url}summary{sessionvars%urlparameter}">summary</a> |
+<a href="{url}shortlog{sessionvars%urlparameter}">shortlog</a> |
+<a href="{url}log{sessionvars%urlparameter}">changelog</a> |
+<a href="{url}graph{sessionvars%urlparameter}">graph</a> |
+<a href="{url}tags{sessionvars%urlparameter}">tags</a> |
+<a href="{url}branches{sessionvars%urlparameter}">branches</a> |
+<a href="{url}file/{node|short}{path|urlescape}{sessionvars%urlparameter}">files</a> |
+<a href="{url}rev/{node|short}{sessionvars%urlparameter}">changeset</a> |
+<a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">file</a> |
+<a href="{url}log/{node|short}/{file|urlescape}{sessionvars%urlparameter}">revisions</a> |
+annotate |
+<a href="{url}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">diff</a> |
+<a href="{url}raw-annotate/{node|short}/{file|urlescape}">raw</a><br/>
+</div>
+
+<div class="title">{file|escape}</div>
+
+<div class="title_text">
+<table cellspacing="0">
+<tr>
+ <td>author</td>
+ <td>{author|obfuscate}</td></tr>
+<tr>
+ <td></td>
+ <td>{date|date} ({date|age} ago)</td></tr>
+{branch%filerevbranch}
+<tr>
+ <td>changeset {rev}</td>
+ <td style="font-family:monospace"><a class="list" href="{url}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a></td></tr>
+{parent%fileannotateparent}
+{child%fileannotatechild}
+<tr>
+ <td>permissions</td>
+ <td style="font-family:monospace">{permissions|permissions}</td></tr>
+</table>
+</div>
+
+<div class="page_path">
+{desc|strip|escape|addbreaks|nonempty}
+</div>
+<div class="page_body">
+<table>
+{annotate%annotateline}
+</table>
+</div>
+
+{footer}
diff --git a/sys/lib/python/mercurial/templates/gitweb/filediff.tmpl b/sys/lib/python/mercurial/templates/gitweb/filediff.tmpl
new file mode 100644 (file)
index 0000000..967d790
--- /dev/null
@@ -0,0 +1,47 @@
+{header}
+<title>{repo|escape}: diff {file|escape}</title>
+<link rel="alternate" type="application/atom+xml"
+   href="{url}atom-log" title="Atom feed for {repo|escape}"/>
+<link rel="alternate" type="application/rss+xml"
+   href="{url}rss-log" title="RSS feed for {repo|escape}"/>
+</head>
+<body>
+
+<div class="page_header">
+<a href="http://mercurial.selenic.com/" title="Mercurial" style="float: right;">Mercurial</a><a href="{url}summary{sessionvars%urlparameter}">{repo|escape}</a> / diff
+</div>
+
+<div class="page_nav">
+<a href="{url}summary{sessionvars%urlparameter}">summary</a> |
+<a href="{url}shortlog{sessionvars%urlparameter}">shortlog</a> |
+<a href="{url}log{sessionvars%urlparameter}">changelog</a> |
+<a href="{url}graph{sessionvars%urlparameter}">graph</a> |
+<a href="{url}tags{sessionvars%urlparameter}">tags</a> |
+<a href="{url}branches{sessionvars%urlparameter}">branches</a> |
+<a href="{url}file/{node|short}{path|urlescape}{sessionvars%urlparameter}">files</a> |
+<a href="{url}rev/{node|short}{sessionvars%urlparameter}">changeset</a> |
+<a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">file</a> |
+<a href="{url}log/{node|short}/{file|urlescape}{sessionvars%urlparameter}">revisions</a> |
+<a href="{url}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">annotate</a> |
+diff |
+<a href="{url}raw-diff/{node|short}/{file|urlescape}">raw</a><br/>
+</div>
+
+<div class="title">{file|escape}</div>
+
+<table>
+{branch%filerevbranch}
+<tr>
+ <td>changeset {rev}</td>
+ <td style="font-family:monospace"><a class="list" href="{url}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a></td></tr>
+{parent%filediffparent}
+{child%filediffchild}
+</table>
+
+<div class="list_head"></div>
+
+<div class="page_body">
+{diff}
+</div>
+
+{footer}
diff --git a/sys/lib/python/mercurial/templates/gitweb/filelog.tmpl b/sys/lib/python/mercurial/templates/gitweb/filelog.tmpl
new file mode 100644 (file)
index 0000000..50f36c8
--- /dev/null
@@ -0,0 +1,40 @@
+{header}
+<title>{repo|escape}: File revisions</title>
+<link rel="alternate" type="application/atom+xml"
+   href="{url}atom-log" title="Atom feed for {repo|escape}"/>
+<link rel="alternate" type="application/rss+xml"
+   href="{url}rss-log" title="RSS feed for {repo|escape}"/>
+</head>
+<body>
+
+<div class="page_header">
+<a href="http://mercurial.selenic.com/" title="Mercurial" style="float: right;">Mercurial</a><a href="{url}summary{sessionvars%urlparameter}">{repo|escape}</a> / file revisions
+</div>
+
+<div class="page_nav">
+<a href="{url}summary{sessionvars%urlparameter}">summary</a> |
+<a href="{url}shortlog{sessionvars%urlparameter}">shortlog</a> |
+<a href="{url}log{sessionvars%urlparameter}">changelog</a> |
+<a href="{url}graph{sessionvars%urlparameter}">graph</a> |
+<a href="{url}tags{sessionvars%urlparameter}">tags</a> |
+<a href="{url}branches{sessionvars%urlparameter}">branches</a> |
+<a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">file</a> |
+revisions |
+<a href="{url}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">annotate</a> |
+<a href="{url}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">diff</a> |
+<a href="{url}rss-log/{node|short}/{file|urlescape}">rss</a>
+<br/>
+{nav%filenaventry}
+</div>
+
+<div class="title" >{file|urlescape}</div>
+
+<table>
+{entries%filelogentry}
+</table>
+
+<div class="page_nav">
+{nav%filenaventry}
+</div>
+
+{footer}
diff --git a/sys/lib/python/mercurial/templates/gitweb/filerevision.tmpl b/sys/lib/python/mercurial/templates/gitweb/filerevision.tmpl
new file mode 100644 (file)
index 0000000..d64c632
--- /dev/null
@@ -0,0 +1,60 @@
+{header}
+<title>{repo|escape}: {file|escape}@{node|short}</title>
+<link rel="alternate" type="application/atom+xml"
+   href="{url}atom-log" title="Atom feed for {repo|escape}"/>
+<link rel="alternate" type="application/rss+xml"
+   href="{url}rss-log" title="RSS feed for {repo|escape}"/>
+</head>
+<body>
+
+<div class="page_header">
+<a href="http://mercurial.selenic.com/" title="Mercurial" style="float: right;">Mercurial</a><a href="{url}summary{sessionvars%urlparameter}">{repo|escape}</a> / file revision
+</div>
+
+<div class="page_nav">
+<a href="{url}summary{sessionvars%urlparameter}">summary</a> |
+<a href="{url}shortlog{sessionvars%urlparameter}">shortlog</a> |
+<a href="{url}log{sessionvars%urlparameter}">changelog</a> |
+<a href="{url}graph{sessionvars%urlparameter}">graph</a> |
+<a href="{url}tags{sessionvars%urlparameter}">tags</a> |
+<a href="{url}branches{sessionvars%urlparameter}">branches</a> |
+<a href="{url}file/{node|short}{path|urlescape}{sessionvars%urlparameter}">files</a> |
+<a href="{url}rev/{node|short}{sessionvars%urlparameter}">changeset</a> |
+file |
+<a href="{url}log/{node|short}/{file|urlescape}{sessionvars%urlparameter}">revisions</a> |
+<a href="{url}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">annotate</a> |
+<a href="{url}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">diff</a> |
+<a href="{url}raw-file/{node|short}/{file|urlescape}">raw</a><br/>
+</div>
+
+<div class="title">{file|escape}</div>
+
+<div class="title_text">
+<table cellspacing="0">
+<tr>
+ <td>author</td>
+ <td>{author|obfuscate}</td></tr>
+<tr>
+ <td></td>
+ <td>{date|date} ({date|age} ago)</td></tr>
+{branch%filerevbranch}
+<tr>
+ <td>changeset {rev}</td>
+ <td style="font-family:monospace"><a class="list" href="{url}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a></td></tr>
+{parent%filerevparent}
+{child%filerevchild}
+<tr>
+ <td>permissions</td>
+ <td style="font-family:monospace">{permissions|permissions}</td></tr>
+</table>
+</div>
+
+<div class="page_path">
+{desc|strip|escape|addbreaks|nonempty}
+</div>
+
+<div class="page_body">
+{text%fileline}
+</div>
+
+{footer}
diff --git a/sys/lib/python/mercurial/templates/gitweb/footer.tmpl b/sys/lib/python/mercurial/templates/gitweb/footer.tmpl
new file mode 100644 (file)
index 0000000..a5f74c3
--- /dev/null
@@ -0,0 +1,11 @@
+<div class="page_footer">
+<div class="page_footer_text">{repo|escape}</div>
+<div class="rss_logo">
+<a href="{url}rss-log">RSS</a>
+<a href="{url}atom-log">Atom</a>
+</div>
+<br />
+{motd}
+</div>
+</body>
+</html>
diff --git a/sys/lib/python/mercurial/templates/gitweb/graph.tmpl b/sys/lib/python/mercurial/templates/gitweb/graph.tmpl
new file mode 100644 (file)
index 0000000..52b399a
--- /dev/null
@@ -0,0 +1,121 @@
+{header}
+<title>{repo|escape}: Graph</title>
+<link rel="alternate" type="application/atom+xml"
+   href="{url}atom-log" title="Atom feed for {repo|escape}"/>
+<link rel="alternate" type="application/rss+xml"
+   href="{url}rss-log" title="RSS feed for {repo|escape}"/>
+<!--[if IE]><script type="text/javascript" src="{staticurl}excanvas.js"></script><![endif]-->
+</head>
+<body>
+
+<div class="page_header">
+<a href="http://mercurial.selenic.com/" title="Mercurial" style="float: right;">Mercurial</a><a href="{url}summary{sessionvars%urlparameter}">{repo|escape}</a> / graph
+</div>
+
+<form action="{url}log">
+{sessionvars%hiddenformentry}
+<div class="search">
+<input type="text" name="rev"  />
+</div>
+</form>
+<div class="page_nav">
+<a href="{url}summary{sessionvars%urlparameter}">summary</a> |
+<a href="{url}shortlog{sessionvars%urlparameter}">shortlog</a> |
+<a href="{url}log/{rev}{sessionvars%urlparameter}">changelog</a> |
+graph |
+<a href="{url}tags{sessionvars%urlparameter}">tags</a> |
+<a href="{url}branches{sessionvars%urlparameter}">branches</a> |
+<a href="{url}file/{node|short}{sessionvars%urlparameter}">files</a>
+<br/>
+<a href="{url}graph/{rev}{lessvars%urlparameter}">less</a>
+<a href="{url}graph/{rev}{morevars%urlparameter}">more</a>
+| {changenav%navgraphentry}<br/>
+</div>
+
+<div class="title">&nbsp;</div>
+
+<noscript>The revision graph only works with JavaScript-enabled browsers.</noscript>
+
+<div id="wrapper">
+<ul id="nodebgs"></ul>
+<canvas id="graph" width="224" height="{canvasheight}"></canvas>
+<ul id="graphnodes"></ul>
+</div>
+
+<script type="text/javascript" src="{staticurl}graph.js"></script>
+<script>
+<!-- hide script content
+
+var data = {jsdata|json};
+var graph = new Graph();
+graph.scale({bg_height});
+
+graph.edge = function(x0, y0, x1, y1, color) {
+       
+       this.setColor(color, 0.0, 0.65);
+       this.ctx.beginPath();
+       this.ctx.moveTo(x0, y0);
+       this.ctx.lineTo(x1, y1);
+       this.ctx.stroke();
+       
+}
+
+var revlink = '<li style="_STYLE"><span class="desc">';
+revlink += '<a class="list" href="{url}rev/_NODEID{sessionvars%urlparameter}" title="_NODEID"><b>_DESC</b></a>';
+revlink += '</span> _TAGS';
+revlink += '<span class="info">_DATE ago, by _USER</span></li>';
+
+graph.vertex = function(x, y, color, parity, cur) {
+       
+       this.ctx.beginPath();
+       color = this.setColor(color, 0.25, 0.75);
+       this.ctx.arc(x, y, radius, 0, Math.PI * 2, true);
+       this.ctx.fill();
+       
+       var bg = '<li class="bg parity' + parity + '"></li>';
+       var left = (this.columns + 1) * this.bg_height;
+       var nstyle = 'padding-left: ' + left + 'px;';
+       var item = revlink.replace(/_STYLE/, nstyle);
+       item = item.replace(/_PARITY/, 'parity' + parity);
+       item = item.replace(/_NODEID/, cur[0]);
+       item = item.replace(/_NODEID/, cur[0]);
+       item = item.replace(/_DESC/, cur[3]);
+       item = item.replace(/_USER/, cur[4]);
+       item = item.replace(/_DATE/, cur[5]);
+       
+       var tagspan = '';
+       if (cur[7].length || (cur[6][0] != 'default' || cur[6][1])) {
+               tagspan = '<span class="logtags">';
+               if (cur[6][1]) {
+                       tagspan += '<span class="branchtag" title="' + cur[6][0] + '">';
+                       tagspan += cur[6][0] + '</span> ';
+               } else if (!cur[6][1] && cur[6][0] != 'default') {
+                       tagspan += '<span class="inbranchtag" title="' + cur[6][0] + '">';
+                       tagspan += cur[6][0] + '</span> ';
+               }
+               if (cur[7].length) {
+                       for (var t in cur[7]) {
+                               var tag = cur[7][t];
+                               tagspan += '<span class="tagtag">' + tag + '</span> ';
+                       }
+               }
+               tagspan += '</span>';
+       }
+       
+       item = item.replace(/_TAGS/, tagspan);
+       return [bg, item];
+       
+}
+
+graph.render(data);
+
+// stop hiding script -->
+</script>
+
+<div class="page_nav">
+<a href="{url}graph/{rev}{lessvars%urlparameter}">less</a>
+<a href="{url}graph/{rev}{morevars%urlparameter}">more</a>
+| {changenav%navgraphentry}
+</div>
+
+{footer}
diff --git a/sys/lib/python/mercurial/templates/gitweb/header.tmpl b/sys/lib/python/mercurial/templates/gitweb/header.tmpl
new file mode 100644 (file)
index 0000000..f3df3d7
--- /dev/null
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="{encoding}"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US" lang="en-US">
+<head>
+<link rel="icon" href="{staticurl}hgicon.png" type="image/png" />
+<meta name="robots" content="index, nofollow"/>
+<link rel="stylesheet" href="{staticurl}style-gitweb.css" type="text/css" />
+
diff --git a/sys/lib/python/mercurial/templates/gitweb/index.tmpl b/sys/lib/python/mercurial/templates/gitweb/index.tmpl
new file mode 100644 (file)
index 0000000..858aaf1
--- /dev/null
@@ -0,0 +1,26 @@
+{header}
+<title>Mercurial repositories index</title>
+</head>
+<body>
+
+<div class="page_header">
+    <a href="http://mercurial.selenic.com/" title="Mercurial" style="float: right;">Mercurial</a>
+    Repositories list
+</div>
+
+<table cellspacing="0">
+    <tr>
+        <td><a href="?sort={sort_name}">Name</a></td>
+        <td><a href="?sort={sort_description}">Description</a></td>
+        <td><a href="?sort={sort_contact}">Contact</a></td>
+        <td><a href="?sort={sort_lastchange}">Last change</a></td>
+        <td>&nbsp;</td>
+        <td>&nbsp;</td>
+    </tr>
+    {entries%indexentry}
+</table>
+<div class="page_footer">
+{motd}
+</div>
+</body>
+</html>
diff --git a/sys/lib/python/mercurial/templates/gitweb/manifest.tmpl b/sys/lib/python/mercurial/templates/gitweb/manifest.tmpl
new file mode 100644 (file)
index 0000000..4bfb39f
--- /dev/null
@@ -0,0 +1,38 @@
+{header}
+<title>{repo|escape}: files</title>
+<link rel="alternate" type="application/atom+xml"
+   href="{url}atom-log" title="Atom feed for {repo|escape}"/>
+<link rel="alternate" type="application/rss+xml"
+   href="{url}rss-log" title="RSS feed for {repo|escape}"/>
+</head>
+<body>
+
+<div class="page_header">
+<a href="http://mercurial.selenic.com/" title="Mercurial" style="float: right;">Mercurial</a><a href="{url}summary{sessionvars%urlparameter}">{repo|escape}</a> / files
+</div>
+
+<div class="page_nav">
+<a href="{url}summary{sessionvars%urlparameter}">summary</a> |
+<a href="{url}shortlog{sessionvars%urlparameter}">shortlog</a> |
+<a href="{url}log{sessionvars%urlparameter}">changelog</a> |
+<a href="{url}graph{sessionvars%urlparameter}">graph</a> |
+<a href="{url}tags{sessionvars%urlparameter}">tags</a> |
+<a href="{url}branches{sessionvars%urlparameter}">branches</a> |
+files |
+<a href="{url}rev/{node|short}{sessionvars%urlparameter}">changeset</a> {archives%archiveentry}<br/>
+</div>
+
+<div class="title">{path|escape} <span class="logtags">{inbranch%inbranchtag}{branches%branchtag}{tags%tagtag}</span></div>
+<table cellspacing="0">
+<tr class="parity{upparity}">
+<td style="font-family:monospace">drwxr-xr-x</td>
+<td style="font-family:monospace"></td>
+<td style="font-family:monospace"></td>
+<td><a href="{url}file/{node|short}{up|urlescape}{sessionvars%urlparameter}">[up]</a></td>
+<td class="link">&nbsp;</td>
+</tr>
+{dentries%direntry}
+{fentries%fileentry}
+</table>
+
+{footer}
diff --git a/sys/lib/python/mercurial/templates/gitweb/map b/sys/lib/python/mercurial/templates/gitweb/map
new file mode 100644 (file)
index 0000000..fc0fedd
--- /dev/null
@@ -0,0 +1,248 @@
+default = 'summary'
+mimetype = 'text/html; charset={encoding}'
+header = header.tmpl
+footer = footer.tmpl
+search = search.tmpl
+changelog = changelog.tmpl
+summary = summary.tmpl
+error = error.tmpl
+notfound = notfound.tmpl
+naventry = '<a href="{url}log/{node|short}{sessionvars%urlparameter}">{label|escape}</a> '
+navshortentry = '<a href="{url}shortlog/{node|short}{sessionvars%urlparameter}">{label|escape}</a> '
+navgraphentry = '<a href="{url}graph/{node|short}{sessionvars%urlparameter}">{label|escape}</a> '
+filenaventry = '<a href="{url}log/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{label|escape}</a> '
+filedifflink = '<a href="{url}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{file|escape}</a> '
+filenodelink = '
+  <tr class="parity{parity}">
+    <td><a class="list" href="{url}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{file|escape}</a></td>
+    <td></td>
+    <td class="link">
+      <a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">file</a> |
+      <a href="{url}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">annotate</a> |
+      <a href="{url}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">diff</a> |
+      <a href="{url}log/{node|short}/{file|urlescape}{sessionvars%urlparameter}">revisions</a>
+    </td>
+  </tr>'
+filenolink = '
+  <tr class="parity{parity}">
+    <td><a class="list" href="{url}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{file|escape}</a></td>
+    <td></td>
+    <td class="link">
+      file |
+      annotate |
+      <a href="{url}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">diff</a> |
+      <a href="{url}log/{node|short}/{file|urlescape}{sessionvars%urlparameter}">revisions</a>
+    </td>
+  </tr>'
+fileellipses = '...'
+changelogentry = changelogentry.tmpl
+searchentry = changelogentry.tmpl
+changeset = changeset.tmpl
+manifest = manifest.tmpl
+direntry = '
+  <tr class="parity{parity}">
+    <td style="font-family:monospace">drwxr-xr-x</td>
+    <td style="font-family:monospace"></td>
+    <td style="font-family:monospace"></td>
+    <td>
+      <a href="{url}file/{node|short}{path|urlescape}{sessionvars%urlparameter}">{basename|escape}</a>
+      <a href="{url}file/{node|short}{path|urlescape}/{emptydirs|urlescape}{sessionvars%urlparameter}">{emptydirs|escape}</a>
+    </td>
+    <td class="link">
+      <a href="{url}file/{node|short}{path|urlescape}{sessionvars%urlparameter}">files</a>
+    </td>
+  </tr>'
+fileentry = '
+  <tr class="parity{parity}">
+    <td style="font-family:monospace">{permissions|permissions}</td>
+    <td style="font-family:monospace" align=right>{date|isodate}</td>
+    <td style="font-family:monospace" align=right>{size}</td>
+    <td class="list">
+      <a class="list" href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{basename|escape}</a>
+    </td>
+    <td class="link">
+      <a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">file</a> |
+      <a href="{url}log/{node|short}/{file|urlescape}{sessionvars%urlparameter}">revisions</a> |
+      <a href="{url}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">annotate</a>
+    </td>
+  </tr>'
+filerevision = filerevision.tmpl
+fileannotate = fileannotate.tmpl
+filediff = filediff.tmpl
+filelog = filelog.tmpl
+fileline = '
+  <div style="font-family:monospace" class="parity{parity}">
+    <pre><a class="linenr" href="#{lineid}" id="{lineid}">{linenumber}</a> {line|escape}</pre>
+  </div>'
+annotateline = '
+  <tr style="font-family:monospace" class="parity{parity}">
+    <td class="linenr" style="text-align: right;">
+      <a href="{url}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}#l{targetline}"
+         title="{node|short}: {desc|escape|firstline}">{author|user}@{rev}</a>
+    </td>
+    <td><pre><a class="linenr" href="#{lineid}" id="{lineid}">{linenumber}</a></pre></td>
+    <td><pre>{line|escape}</pre></td>
+  </tr>'
+difflineplus = '<span style="color:#008800;"><a class="linenr" href="#{lineid}" id="{lineid}">{linenumber}</a> {line|escape}</span>'
+difflineminus = '<span style="color:#cc0000;"><a class="linenr" href="#{lineid}" id="{lineid}">{linenumber}</a> {line|escape}</span>'
+difflineat = '<span style="color:#990099;"><a class="linenr" href="#{lineid}" id="{lineid}">{linenumber}</a> {line|escape}</span>'
+diffline = '<span><a class="linenr" href="#{lineid}" id="{lineid}">{linenumber}</a> {line|escape}</span>'
+changelogparent = '
+  <tr>
+    <th class="parent">parent {rev}:</th>
+    <td class="parent">
+      <a href="{url}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a>
+    </td>
+  </tr>'
+changesetbranch = '<tr><td>branch</td><td>{name}</td></tr>'
+changesetparent = '
+  <tr>
+    <td>parent {rev}</td>
+    <td style="font-family:monospace">
+      <a class="list" href="{url}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a>
+    </td>
+  </tr>'
+filerevbranch = '<tr><td>branch</td><td>{name}</td></tr>'
+filerevparent = '
+  <tr>
+    <td>parent {rev}</td>
+    <td style="font-family:monospace">
+      <a class="list" href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">
+        {rename%filerename}{node|short}
+      </a>
+    </td>
+  </tr>'
+filerename = '{file|escape}@'
+filelogrename = '| <a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">base</a>'
+fileannotateparent = '
+  <tr>
+    <td>parent {rev}</td>
+    <td style="font-family:monospace">
+      <a class="list" href="{url}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">
+        {rename%filerename}{node|short}
+      </a>
+    </td>
+  </tr>'
+changelogchild = '
+  <tr>
+    <th class="child">child {rev}:</th>
+    <td class="child"><a href="{url}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a></td>
+  </tr>'
+changesetchild = '
+  <tr>
+    <td>child {rev}</td>
+    <td style="font-family:monospace">
+      <a class="list" href="{url}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a>
+    </td>
+  </tr>'
+filerevchild = '
+  <tr>
+    <td>child {rev}</td>
+    <td style="font-family:monospace">
+      <a class="list" href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{node|short}</a></td>
+    </tr>'
+fileannotatechild = '
+  <tr>
+    <td>child {rev}</td>
+    <td style="font-family:monospace">
+      <a class="list" href="{url}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{node|short}</a></td>
+    </tr>'
+tags = tags.tmpl
+tagentry = '
+  <tr class="parity{parity}">
+    <td class="age"><i>{date|age} ago</i></td>
+    <td><a class="list" href="{url}rev/{node|short}{sessionvars%urlparameter}"><b>{tag|escape}</b></a></td>
+    <td class="link">
+      <a href="{url}rev/{node|short}{sessionvars%urlparameter}">changeset</a> |
+      <a href="{url}log/{node|short}{sessionvars%urlparameter}">changelog</a> |
+      <a href="{url}file/{node|short}{sessionvars%urlparameter}">files</a>
+    </td>
+  </tr>'
+branches = branches.tmpl
+branchentry = '
+  <tr class="parity{parity}">
+    <td class="age"><i>{date|age} ago</i></td>
+    <td><a class="list" href="{url}shortlog/{node|short}{sessionvars%urlparameter}"><b>{node|short}</b></a></td>
+    <td class="{status}">{branch|escape}</td>
+    <td class="link">
+      <a href="{url}changeset/{node|short}{sessionvars%urlparameter}">changeset</a> |
+      <a href="{url}log/{node|short}{sessionvars%urlparameter}">changelog</a> |
+      <a href="{url}file/{node|short}{sessionvars%urlparameter}">files</a>
+    </td>
+  </tr>'
+diffblock = '<pre>{lines}</pre>'
+filediffparent = '
+  <tr>
+    <td>parent {rev}</td>
+    <td style="font-family:monospace">
+      <a class="list" href="{url}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">
+        {node|short}
+      </a>
+    </td>
+  </tr>'
+filelogparent = '
+  <tr>
+    <td align="right">parent {rev}:&nbsp;</td>
+    <td><a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{node|short}</a></td>
+  </tr>'
+filediffchild = '
+  <tr>
+    <td>child {rev}</td>
+    <td style="font-family:monospace">
+      <a class="list" href="{url}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{node|short}</a>
+    </td>
+  </tr>'
+filelogchild = '
+  <tr>
+    <td align="right">child {rev}:&nbsp;</td>
+    <td><a href="{url}file{node|short}/{file|urlescape}{sessionvars%urlparameter}">{node|short}</a></td>
+  </tr>'
+shortlog = shortlog.tmpl
+graph = graph.tmpl
+tagtag = '<span class="tagtag" title="{name}">{name}</span> '
+branchtag = '<span class="branchtag" title="{name}">{name}</span> '
+inbranchtag = '<span class="inbranchtag" title="{name}">{name}</span> '
+shortlogentry = '
+  <tr class="parity{parity}">
+    <td class="age"><i>{date|age} ago</i></td>
+    <td><i>{author|person}</i></td>
+    <td>
+      <a class="list" href="{url}rev/{node|short}{sessionvars%urlparameter}">
+        <b>{desc|strip|firstline|escape|nonempty}</b>
+        <span class="logtags">{inbranch%inbranchtag}{branches%branchtag}{tags%tagtag}</span>
+      </a>
+    </td>
+    <td class="link" nowrap>
+      <a href="{url}rev/{node|short}{sessionvars%urlparameter}">changeset</a> |
+      <a href="{url}file/{node|short}{sessionvars%urlparameter}">files</a>
+    </td>
+  </tr>'
+filelogentry = '
+  <tr class="parity{parity}">
+    <td class="age"><i>{date|age} ago</i></td>
+    <td>
+      <a class="list" href="{url}rev/{node|short}{sessionvars%urlparameter}">
+        <b>{desc|strip|firstline|escape|nonempty}</b>
+      </a>
+    </td>
+    <td class="link">
+      <a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">file</a>&nbsp;|&nbsp;<a href="{url}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">diff</a>&nbsp;|&nbsp;<a href="{url}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">annotate</a> {rename%filelogrename}</td>
+    </tr>'
+archiveentry = ' | <a href="{url}archive/{node|short}{extension}">{type|escape}</a> '
+indexentry = '
+  <tr class="parity{parity}">
+    <td>
+      <a class="list" href="{url}{sessionvars%urlparameter}">
+        <b>{name|escape}</b>
+      </a>
+    </td>
+    <td>{description}</td>
+    <td>{contact|obfuscate}</td>
+    <td class="age">{lastchange|age} ago</td>
+    <td class="indexlinks">{archives%indexarchiveentry}</td>
+    <td><div class="rss_logo"><a href="{url}rss-log">RSS</a> <a href="{url}atom-log">Atom</a></div></td>
+  </tr>\n'
+indexarchiveentry = ' <a href="{url}archive/{node|short}{extension}">{type|escape}</a> '
+index = index.tmpl
+urlparameter = '{separator}{name}={value|urlescape}'
+hiddenformentry = '<input type="hidden" name="{name}" value="{value|escape}" />'
diff --git a/sys/lib/python/mercurial/templates/gitweb/notfound.tmpl b/sys/lib/python/mercurial/templates/gitweb/notfound.tmpl
new file mode 100644 (file)
index 0000000..073bb11
--- /dev/null
@@ -0,0 +1,18 @@
+{header}
+<title>Mercurial repository not found</title>
+</head>
+
+<body>
+
+<div class="page_header">
+<a href="http://mercurial.selenic.com/" title="Mercurial" style="float: right;">Mercurial</a> Not found: {repo|escape}
+</div>
+
+<div class="page_body">
+The specified repository "{repo|escape}" is unknown, sorry.
+<br/>
+<br/>
+Please go back to the <a href="{url}">main repository list page</a>.
+</div>
+
+{footer}
diff --git a/sys/lib/python/mercurial/templates/gitweb/search.tmpl b/sys/lib/python/mercurial/templates/gitweb/search.tmpl
new file mode 100644 (file)
index 0000000..0ac85f2
--- /dev/null
@@ -0,0 +1,36 @@
+{header}
+<title>{repo|escape}: Search</title>
+<link rel="alternate" type="application/atom+xml"
+   href="{url}atom-log" title="Atom feed for {repo|escape}"/>
+<link rel="alternate" type="application/rss+xml"
+   href="{url}rss-log" title="RSS feed for {repo|escape}"/>
+</head>
+<body>
+
+<div class="page_header">
+<a href="http://mercurial.selenic.com/" title="Mercurial" style="float: right;">Mercurial</a><a href="{url}summary{sessionvars%urlparameter}">{repo|escape}</a> / search
+
+<form action="{url}log">
+{sessionvars%hiddenformentry}
+<div class="search">
+<input type="text" name="rev" value="{query|escape}" />
+</div>
+</form>
+</div>
+
+<div class="page_nav">
+<a href="{url}summary{sessionvars%urlparameter}">summary</a> |
+<a href="{url}shortlog{sessionvars%urlparameter}">shortlog</a> |
+<a href="{url}log{sessionvars%urlparameter}">changelog</a> |
+<a href="{url}graph{sessionvars%urlparameter}">graph</a> |
+<a href="{url}tags{sessionvars%urlparameter}">tags</a> |
+<a href="{url}branches{sessionvars%urlparameter}">branches</a> |
+<a href="{url}file/{node|short}{sessionvars%urlparameter}">files</a>{archives%archiveentry}
+<br/>
+</div>
+
+<div class="title">searching for {query|escape}</div>
+
+{entries}
+
+{footer}
diff --git a/sys/lib/python/mercurial/templates/gitweb/shortlog.tmpl b/sys/lib/python/mercurial/templates/gitweb/shortlog.tmpl
new file mode 100644 (file)
index 0000000..d402597
--- /dev/null
@@ -0,0 +1,41 @@
+{header}
+<title>{repo|escape}: Shortlog</title>
+<link rel="alternate" type="application/atom+xml"
+   href="{url}atom-log" title="Atom feed for {repo|escape}"/>
+<link rel="alternate" type="application/rss+xml"
+   href="{url}rss-log" title="RSS feed for {repo|escape}"/>
+</head>
+<body>
+
+<div class="page_header">
+<a href="http://mercurial.selenic.com/" title="Mercurial" style="float: right;">Mercurial</a><a href="{url}summary{sessionvars%urlparameter}">{repo|escape}</a> / shortlog
+</div>
+
+<form action="{url}log">
+{sessionvars%hiddenformentry}
+<div class="search">
+<input type="text" name="rev"  />
+</div>
+</form>
+<div class="page_nav">
+<a href="{url}summary{sessionvars%urlparameter}">summary</a> |
+shortlog |
+<a href="{url}log/{rev}{sessionvars%urlparameter}">changelog</a> |
+<a href="{url}graph{sessionvars%urlparameter}">graph</a> |
+<a href="{url}tags{sessionvars%urlparameter}">tags</a> |
+<a href="{url}branches{sessionvars%urlparameter}">branches</a> |
+<a href="{url}file/{node|short}{sessionvars%urlparameter}">files</a>{archives%archiveentry}
+<br/>
+{changenav%navshortentry}<br/>
+</div>
+
+<div class="title">&nbsp;</div>
+<table cellspacing="0">
+{entries%shortlogentry}
+</table>
+
+<div class="page_nav">
+{changenav%navshortentry}
+</div>
+
+{footer}
diff --git a/sys/lib/python/mercurial/templates/gitweb/summary.tmpl b/sys/lib/python/mercurial/templates/gitweb/summary.tmpl
new file mode 100644 (file)
index 0000000..f6473a5
--- /dev/null
@@ -0,0 +1,58 @@
+{header}
+<title>{repo|escape}: Summary</title>
+<link rel="alternate" type="application/atom+xml"
+   href="{url}atom-log" title="Atom feed for {repo|escape}"/>
+<link rel="alternate" type="application/rss+xml"
+   href="{url}rss-log" title="RSS feed for {repo|escape}"/>
+</head>
+<body>
+
+<div class="page_header">
+<a href="http://mercurial.selenic.com/" title="Mercurial" style="float: right;">Mercurial</a><a href="{url}summary{sessionvars%urlparameter}">{repo|escape}</a> / summary
+
+<form action="{url}log">
+{sessionvars%hiddenformentry}
+<div class="search">
+<input type="text" name="rev"  />
+</div>
+</form>
+</div>
+
+<div class="page_nav">
+summary |
+<a href="{url}shortlog{sessionvars%urlparameter}">shortlog</a> |
+<a href="{url}log{sessionvars%urlparameter}">changelog</a> |
+<a href="{url}graph{sessionvars%urlparameter}">graph</a> |
+<a href="{url}tags{sessionvars%urlparameter}">tags</a> |
+<a href="{url}branches{sessionvars%urlparameter}">branches</a> |
+<a href="{url}file/{node|short}{sessionvars%urlparameter}">files</a>{archives%archiveentry}
+<br/>
+</div>
+
+<div class="title">&nbsp;</div>
+<table cellspacing="0">
+<tr><td>description</td><td>{desc}</td></tr>
+<tr><td>owner</td><td>{owner|obfuscate}</td></tr>
+<tr><td>last change</td><td>{lastchange|rfc822date}</td></tr>
+</table>
+
+<div><a  class="title" href="{url}shortlog{sessionvars%urlparameter}">changes</a></div>
+<table cellspacing="0">
+{shortlog}
+<tr class="light"><td colspan="4"><a class="list" href="{url}shortlog{sessionvars%urlparameter}">...</a></td></tr>
+</table>
+
+<div><a class="title" href="{url}tags{sessionvars%urlparameter}">tags</a></div>
+<table cellspacing="0">
+{tags}
+<tr class="light"><td colspan="3"><a class="list" href="{url}tags{sessionvars%urlparameter}">...</a></td></tr>
+</table>
+
+<div><a class="title" href="#">branches</a></div>
+<table cellspacing="0">
+{branches%branchentry}
+<tr class="light">
+  <td colspan="4"><a class="list"  href="#">...</a></td>
+</tr>
+</table>
+{footer}
diff --git a/sys/lib/python/mercurial/templates/gitweb/tags.tmpl b/sys/lib/python/mercurial/templates/gitweb/tags.tmpl
new file mode 100644 (file)
index 0000000..b5e64b6
--- /dev/null
@@ -0,0 +1,30 @@
+{header}
+<title>{repo|escape}: Tags</title>
+<link rel="alternate" type="application/atom+xml"
+   href="{url}atom-tags" title="Atom feed for {repo|escape}"/>
+<link rel="alternate" type="application/rss+xml"
+   href="{url}rss-tags" title="RSS feed for {repo|escape}"/>
+</head>
+<body>
+
+<div class="page_header">
+<a href="http://mercurial.selenic.com/" title="Mercurial" style="float: right;">Mercurial</a><a href="{url}summary{sessionvars%urlparameter}">{repo|escape}</a> / tags
+</div>
+
+<div class="page_nav">
+<a href="{url}summary{sessionvars%urlparameter}">summary</a> |
+<a href="{url}shortlog{sessionvars%urlparameter}">shortlog</a> |
+<a href="{url}log{sessionvars%urlparameter}">changelog</a> |
+<a href="{url}graph{sessionvars%urlparameter}">graph</a> |
+tags |
+<a href="{url}branches{sessionvars%urlparameter}">branches</a> |
+<a href="{url}file/{node|short}{sessionvars%urlparameter}">files</a>
+<br/>
+</div>
+
+<div class="title">&nbsp;</div>
+<table cellspacing="0">
+{entries%tagentry}
+</table>
+
+{footer}
diff --git a/sys/lib/python/mercurial/templates/map-cmdline.changelog b/sys/lib/python/mercurial/templates/map-cmdline.changelog
new file mode 100644 (file)
index 0000000..8ae39b5
--- /dev/null
@@ -0,0 +1,14 @@
+header = '{date|shortdate}  {author|person}  <{author|email}>\n\n'
+header_verbose = ''
+changeset = '\t* {files|stringify|fill68|tabindent}{desc|fill68|tabindent|strip}\n\t[{node|short}]{tags}\n\n'
+changeset_quiet = '\t* {desc|firstline|fill68|tabindent|strip}\n\n'
+changeset_verbose = '{date|isodate}  {author|person}  <{author|email}>  ({node|short}{tags})\n\n\t* {file_adds|stringify|fill68|tabindent}{file_dels|stringify|fill68|tabindent}{files|stringify|fill68|tabindent}{desc|fill68|tabindent|strip}\n\n'
+start_tags = ' ['
+tag = '{tag}, '
+last_tag = '{tag}]'
+file = '{file}, '
+last_file = '{file}:\n\t'
+file_add = '{file_add}, '
+last_file_add = '{file_add}: new file.\n* '
+file_del = '{file_del}, '
+last_file_del = '{file_del}: deleted file.\n* '
diff --git a/sys/lib/python/mercurial/templates/map-cmdline.compact b/sys/lib/python/mercurial/templates/map-cmdline.compact
new file mode 100644 (file)
index 0000000..ee66bff
--- /dev/null
@@ -0,0 +1,9 @@
+changeset = '{rev}{tags}{parents}   {node|short}   {date|isodate}   {author|user}\n  {desc|firstline|strip}\n\n'
+changeset_quiet = '{rev}:{node|short}\n'
+changeset_verbose = '{rev}{tags}{parents}   {node|short}   {date|isodate}   {author}\n  {desc|strip}\n\n'
+start_tags = '['
+tag = '{tag},'
+last_tag = '{tag}]'
+start_parents = ':'
+parent = '{rev},'
+last_parent = '{rev}'
diff --git a/sys/lib/python/mercurial/templates/map-cmdline.default b/sys/lib/python/mercurial/templates/map-cmdline.default
new file mode 100644 (file)
index 0000000..3ceb297
--- /dev/null
@@ -0,0 +1,24 @@
+changeset = 'changeset:   {rev}:{node|short}\n{branches}{tags}{parents}user:        {author}\ndate:        {date|date}\nsummary:     {desc|firstline}\n\n'
+changeset_quiet = '{rev}:{node|short}\n'
+changeset_verbose = 'changeset:   {rev}:{node|short}\n{branches}{tags}{parents}user:        {author}\ndate:        {date|date}\n{files}{file_copies}description:\n{desc|strip}\n\n\n'
+changeset_debug = 'changeset:   {rev}:{node}\n{branches}{tags}{parents}{manifest}user:        {author}\ndate:        {date|date}\n{file_mods}{file_adds}{file_dels}{file_copies}{extras}description:\n{desc|strip}\n\n\n'
+start_files = 'files:      '
+file = ' {file}'
+end_files = '\n'
+start_file_mods = 'files:      '
+file_mod = ' {file_mod}'
+end_file_mods = '\n'
+start_file_adds = 'files+:     '
+file_add = ' {file_add}'
+end_file_adds = '\n'
+start_file_dels = 'files-:     '
+file_del = ' {file_del}'
+end_file_dels = '\n'
+start_file_copies = 'copies:     '
+file_copy = ' {name} ({source})'
+end_file_copies = '\n'
+parent = 'parent:      {rev}:{node|formatnode}\n'
+manifest = 'manifest:    {rev}:{node}\n'
+branch = 'branch:      {branch}\n'
+tag = 'tag:         {tag}\n'
+extra = 'extra:       {key}={value|stringescape}\n'
diff --git a/sys/lib/python/mercurial/templates/monoblue/branches.tmpl b/sys/lib/python/mercurial/templates/monoblue/branches.tmpl
new file mode 100644 (file)
index 0000000..2c75da0
--- /dev/null
@@ -0,0 +1,36 @@
+{header}
+    <title>{repo|escape}: Branches</title>
+    <link rel="alternate" type="application/atom+xml" href="{url}atom-log" title="Atom feed for {repo|escape}"/>
+    <link rel="alternate" type="application/rss+xml" href="{url}rss-log" title="RSS feed for {repo|escape}"/>
+</head>
+
+<body>
+<div id="container">
+    <div class="page-header">
+        <h1><a href="{url}summary{sessionvars%urlparameter}">{repo|escape}</a> / Branches</h1>
+
+        <form action="{url}log">
+            {sessionvars%hiddenformentry}
+            <dl class="search">
+                <dt><label>Search: </label></dt>
+                <dd><input type="text" name="rev" /></dd>
+            </dl>
+        </form>
+
+        <ul class="page-nav">
+            <li><a href="{url}summary{sessionvars%urlparameter}">summary</a></li>
+            <li><a href="{url}shortlog{sessionvars%urlparameter}">shortlog</a></li>
+            <li><a href="{url}changelog{sessionvars%urlparameter}">changelog</a></li>
+            <li><a href="{url}graph/{node|short}{sessionvars%urlparameter}">graph</a></li>
+            <li><a href="{url}tags{sessionvars%urlparameter}">tags</a></li>
+            <li class="current">branches</li>
+            <li><a href="{url}file/{node|short}{sessionvars%urlparameter}">files</a></li>
+        </ul>
+    </div>
+
+    <h2 class="no-link no-border">tags</h2>
+    <table cellspacing="0">
+{entries%branchentry}
+    </table>
+
+{footer}
diff --git a/sys/lib/python/mercurial/templates/monoblue/changelog.tmpl b/sys/lib/python/mercurial/templates/monoblue/changelog.tmpl
new file mode 100644 (file)
index 0000000..8b361e5
--- /dev/null
@@ -0,0 +1,40 @@
+{header}
+    <title>{repo|escape}: changelog</title>
+    <link rel="alternate" type="application/atom+xml" href="{url}atom-log" title="Atom feed for {repo|escape}"/>
+    <link rel="alternate" type="application/rss+xml" href="{url}rss-log" title="RSS feed for {repo|escape}"/>
+</head>
+
+<body>
+<div id="container">
+    <div class="page-header">
+        <h1><a href="{url}summary{sessionvars%urlparameter}">{repo|escape}</a> / changelog</h1>
+
+        <form action="{url}log">
+            {sessionvars%hiddenformentry}
+            <dl class="search">
+                <dt><label>Search: </label></dt>
+                <dd><input type="text" name="rev" /></dd>
+            </dl>
+        </form>
+
+        <ul class="page-nav">
+            <li><a href="{url}summary{sessionvars%urlparameter}">summary</a></li>
+            <li><a href="{url}shortlog{sessionvars%urlparameter}">shortlog</a></li>
+            <li class="current">changelog</li>
+            <li><a href="{url}graph/{node|short}{sessionvars%urlparameter}">graph</a></li>
+            <li><a href="{url}tags{sessionvars%urlparameter}">tags</a></li>
+            <li><a href="{url}branches{sessionvars%urlparameter}">branches</a></li>
+            <li><a href="{url}file/{node|short}{sessionvars%urlparameter}">files</a>{archives%archiveentry}</li>
+        </ul>
+    </div>
+
+    <h2 class="no-link no-border">changelog</h2>
+    <div>
+    {entries%changelogentry}
+    </div>
+
+    <div class="page-path">
+{changenav%naventry}
+    </div>
+
+{footer}
diff --git a/sys/lib/python/mercurial/templates/monoblue/changelogentry.tmpl b/sys/lib/python/mercurial/templates/monoblue/changelogentry.tmpl
new file mode 100644 (file)
index 0000000..df03c97
--- /dev/null
@@ -0,0 +1,6 @@
+<h3 class="changelog"><a class="title" href="{url}rev/{node|short}{sessionvars%urlparameter}">{desc|strip|firstline|escape|nonempty}<span class="logtags"> {inbranch%inbranchtag}{branches%branchtag}{tags%tagtag}</span></a></h3>
+<ul class="changelog-entry">
+    <li class="age">{date|age} ago</li>
+    <li>by <span class="name">{author|obfuscate}</span> <span class="revdate">[{date|rfc822date}] rev {rev}</span></li>
+    <li class="description">{desc|strip|escape|addbreaks|nonempty}</li>
+</ul>
diff --git a/sys/lib/python/mercurial/templates/monoblue/changeset.tmpl b/sys/lib/python/mercurial/templates/monoblue/changeset.tmpl
new file mode 100644 (file)
index 0000000..8919778
--- /dev/null
@@ -0,0 +1,63 @@
+{header}
+<title>{repo|escape}: changeset {rev}:{node|short}</title>
+    <link rel="alternate" type="application/atom+xml" href="{url}atom-log" title="Atom feed for {repo|escape}"/>
+    <link rel="alternate" type="application/rss+xml" href="{url}rss-log" title="RSS feed for {repo|escape}"/>
+</head>
+
+<body>
+<div id="container">
+    <div class="page-header">
+        <h1><a href="{url}summary{sessionvars%urlparameter}">{repo|escape}</a> / files</h1>
+
+        <form action="{url}log">
+            {sessionvars%hiddenformentry}
+            <dl class="search">
+                <dt><label>Search: </label></dt>
+                <dd><input type="text" name="rev" /></dd>
+            </dl>
+        </form>
+
+        <ul class="page-nav">
+            <li><a href="{url}summary{sessionvars%urlparameter}">summary</a></li>
+            <li><a href="{url}shortlog{sessionvars%urlparameter}">shortlog</a></li>
+            <li><a href="{url}changelog{sessionvars%urlparameter}">changelog</a></li>
+            <li><a href="{url}graph/{node|short}{sessionvars%urlparameter}">graph</a></li>
+            <li><a href="{url}tags{sessionvars%urlparameter}">tags</a></li>
+            <li><a href="{url}branches{sessionvars%urlparameter}">branches</a></li>
+            <li><a href="{url}file/{node|short}{sessionvars%urlparameter}">files</a></li>
+        </ul>
+    </div>
+
+    <ul class="submenu">
+        <li class="current">changeset</li>
+        <li><a href="{url}raw-rev/{node|short}">raw</a> {archives%archiveentry}</li>
+    </ul>
+
+    <h2 class="no-link no-border">changeset</h2>
+
+    <h3 class="changeset"><a href="{url}raw-rev/{node|short}">{desc|strip|escape|firstline|nonempty} <span class="logtags">{inbranch%inbranchtag}{branches%branchtag}{tags%tagtag}</span></a></h3>
+    <p class="changeset-age"><span>{date|age} ago</span></p>
+
+    <dl class="overview">
+        <dt>author</dt>
+        <dd>{author|obfuscate}</dd>
+        <dt>date</dt>
+        <dd>{date|date}</dd>
+        {branch%changesetbranch}
+        <dt>changeset {rev}</dt>
+        <dd>{node|short}</dd>
+        {parent%changesetparent}
+        {child%changesetchild}
+    </dl>
+
+    <p class="description">{desc|strip|escape|addbreaks|nonempty}</p>
+
+    <table>
+    {files}
+    </table>
+
+    <div class="diff">
+    {diff}
+    </div>
+
+{footer}
diff --git a/sys/lib/python/mercurial/templates/monoblue/error.tmpl b/sys/lib/python/mercurial/templates/monoblue/error.tmpl
new file mode 100644 (file)
index 0000000..a7f23d2
--- /dev/null
@@ -0,0 +1,34 @@
+{header}
+    <title>{repo|escape}: Error</title>
+    <link rel="alternate" type="application/atom+xml" href="{url}atom-log" title="Atom feed for {repo|escape}"/>
+    <link rel="alternate" type="application/rss+xml" href="{url}rss-log" title="RSS feed for {repo|escape}"/>
+</head>
+
+<body>
+<div id="container">
+    <div class="page-header">
+        <h1><a href="{url}summary{sessionvars%urlparameter}">{repo|escape}</a> / Not found: {repo|escape}</h1>
+
+        <form action="{url}log">
+            {sessionvars%hiddenformentry}
+            <dl class="search">
+                <dt><label>Search: </label></dt>
+                <dd><input type="text" name="rev" /></dd>
+            </dl>
+        </form>
+
+        <ul class="page-nav">
+            <li class="current">summary</li>
+            <li><a href="{url}shortlog{sessionvars%urlparameter}">shortlog</a></li>
+            <li><a href="{url}log{sessionvars%urlparameter}">changelog</a></li>
+            <li><a href="{url}graph/{node|short}{sessionvars%urlparameter}">graph</a></li>
+            <li><a href="{url}tags{sessionvars%urlparameter}">tags</a></li>
+            <li><a href="{url}branches{sessionvars%urlparameter}">branches</a></li>
+            <li><a href="{url}file/{node|short}{sessionvars%urlparameter}">files</a></li>
+        </ul>
+    </div>
+
+    <h2 class="no-link no-border">An error occurred while processing your request</h2>
+    <p class="normal">{error|escape}</p>
+
+{footer}
diff --git a/sys/lib/python/mercurial/templates/monoblue/fileannotate.tmpl b/sys/lib/python/mercurial/templates/monoblue/fileannotate.tmpl
new file mode 100644 (file)
index 0000000..13094f6
--- /dev/null
@@ -0,0 +1,63 @@
+{header}
+<title>{repo|escape}: {file|escape}@{node|short} (annotated)</title>
+    <link rel="alternate" type="application/atom+xml" href="{url}atom-log" title="Atom feed for {repo|escape}"/>
+    <link rel="alternate" type="application/rss+xml" href="{url}rss-log" title="RSS feed for {repo|escape}"/>
+</head>
+
+<body>
+<div id="container">
+    <div class="page-header">
+        <h1><a href="{url}summary{sessionvars%urlparameter}">{repo|escape}</a> / annotate</h1>
+
+        <form action="{url}log">
+            {sessionvars%hiddenformentry}
+            <dl class="search">
+                <dt><label>Search: </label></dt>
+                <dd><input type="text" name="rev" /></dd>
+            </dl>
+        </form>
+
+        <ul class="page-nav">
+            <li><a href="{url}summary{sessionvars%urlparameter}">summary</a></li>
+            <li><a href="{url}shortlog{sessionvars%urlparameter}">shortlog</a></li>
+            <li><a href="{url}log{sessionvars%urlparameter}">changelog</a></li>
+            <li><a href="{url}graph/{node|short}{sessionvars%urlparameter}">graph</a></li>
+            <li><a href="{url}tags{sessionvars%urlparameter}">tags</a></li>
+            <li><a href="{url}branches{sessionvars%urlparameter}">branches</a></li>
+            <li><a href="{url}file/{node|short}{path|urlescape}{sessionvars%urlparameter}">files</a></li>
+        </ul>
+    </div>
+
+    <ul class="submenu">
+        <li><a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">file</a></li>
+        <li><a href="{url}log/{node|short}/{file|urlescape}{sessionvars%urlparameter}">revisions</a></li>
+        <li class="current">annotate</li>
+        <li><a href="{url}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">diff</a></li>
+        <li><a href="{url}raw-annotate/{node|short}/{file|urlescape}">raw</a></li>
+    </ul>
+
+    <h2 class="no-link no-border">{file|escape}@{node|short} (annotated)</h2>
+    <h3 class="changeset">{file|escape}</h3>
+    <p class="changeset-age"><span>{date|age} ago</span></p>
+
+    <dl class="overview">
+        <dt>author</dt>
+        <dd>{author|obfuscate}</dd>
+        <dt>date</dt>
+        <dd>{date|date}</dd>
+        {branch%filerevbranch}
+        <dt>changeset {rev}</dt>
+        <dd><a href="{url}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a></dd>
+        {parent%fileannotateparent}
+        {child%fileannotatechild}
+        <dt>permissions</dt>
+        <dd>{permissions|permissions}</dd>
+    </dl>
+
+    <p class="description">{desc|strip|escape|addbreaks|nonempty}</p>
+
+    <table class="annotated">
+    {annotate%annotateline}
+    </table>
+
+{footer}
diff --git a/sys/lib/python/mercurial/templates/monoblue/filediff.tmpl b/sys/lib/python/mercurial/templates/monoblue/filediff.tmpl
new file mode 100644 (file)
index 0000000..ccf2e85
--- /dev/null
@@ -0,0 +1,54 @@
+{header}
+<title>{repo|escape}: diff {file|escape}</title>
+    <link rel="alternate" type="application/atom+xml" href="{url}atom-log" title="Atom feed for {repo|escape}"/>
+    <link rel="alternate" type="application/rss+xml" href="{url}rss-log" title="RSS feed for {repo|escape}"/>
+</head>
+
+<body>
+<div id="container">
+    <div class="page-header">
+        <h1><a href="{url}summary{sessionvars%urlparameter}">{repo|escape}</a> / file diff</h1>
+
+        <form action="{url}log">
+            {sessionvars%hiddenformentry}
+            <dl class="search">
+                <dt><label>Search: </label></dt>
+                <dd><input type="text" name="rev" /></dd>
+            </dl>
+        </form>
+
+        <ul class="page-nav">
+            <li><a href="{url}summary{sessionvars%urlparameter}">summary</a></li>
+            <li><a href="{url}shortlog{sessionvars%urlparameter}">shortlog</a></li>
+            <li><a href="{url}log{sessionvars%urlparameter}">changelog</a></li>
+            <li><a href="{url}graph/{node|short}{sessionvars%urlparameter}">graph</a></li>
+            <li><a href="{url}tags{sessionvars%urlparameter}">tags</a></li>
+            <li><a href="{url}branches{sessionvars%urlparameter}">branches</a></li>
+            <li><a href="{url}file/{node|short}{path|urlescape}{sessionvars%urlparameter}">files</a></li>
+        </ul>
+    </div>
+
+    <ul class="submenu">
+        <li><a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">file</a></li>
+        <li><a href="{url}log/{node|short}/{file|urlescape}{sessionvars%urlparameter}">revisions</a></li>
+        <li><a href="{url}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">annotate</a></li>
+        <li class="current">diff</li>
+        <li><a href="{url}raw-diff/{node|short}/{file|urlescape}">raw</a></li>
+    </ul>
+
+    <h2 class="no-link no-border">diff: {file|escape}</h2>
+    <h3 class="changeset">{file|escape}</h3>
+
+    <dl class="overview">
+        {branch%filerevbranch}
+        <dt>changeset {rev}</dt>
+        <dd><a href="{url}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a></dd>
+        {parent%filediffparent}
+        {child%filediffchild}
+    </dl>
+
+    <div class="diff">
+    {diff}
+    </div>
+
+{footer}
diff --git a/sys/lib/python/mercurial/templates/monoblue/filelog.tmpl b/sys/lib/python/mercurial/templates/monoblue/filelog.tmpl
new file mode 100644 (file)
index 0000000..4ebc5cc
--- /dev/null
@@ -0,0 +1,49 @@
+{header}
+<title>{repo|escape}: File revisions</title>
+    <link rel="alternate" type="application/atom+xml" href="{url}atom-log" title="Atom feed for {repo|escape}"/>
+    <link rel="alternate" type="application/rss+xml" href="{url}rss-log" title="RSS feed for {repo|escape}"/>
+</head>
+
+<body>
+<div id="container">
+    <div class="page-header">
+        <h1><a href="{url}summary{sessionvars%urlparameter}">{repo|escape}</a> / file revisions</h1>
+
+        <form action="{url}log">
+            {sessionvars%hiddenformentry}
+            <dl class="search">
+                <dt><label>Search: </label></dt>
+                <dd><input type="text" name="rev" /></dd>
+            </dl>
+        </form>
+
+        <ul class="page-nav">
+            <li><a href="{url}summary{sessionvars%urlparameter}">summary</a></li>
+            <li><a href="{url}shortlog{sessionvars%urlparameter}">shortlog</a></li>
+            <li><a href="{url}log{sessionvars%urlparameter}">changelog</a></li>
+            <li><a href="{url}graph/{node|short}{sessionvars%urlparameter}">graph</a></li>
+            <li><a href="{url}tags{sessionvars%urlparameter}">tags</a></li>
+            <li><a href="{url}branches{sessionvars%urlparameter}">branches</a></li>
+            <li><a href="{url}file/{node|short}{path|urlescape}{sessionvars%urlparameter}">files</a></li>
+        </ul>
+    </div>
+
+    <ul class="submenu">
+        <li><a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">file</a></li>
+        <li class="current">revisions</li>
+        <li><a href="{url}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">annotate</a></li>
+        <li><a href="{url}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">diff</a></li>
+        <li><a href="{url}rss-log/{node|short}/{file|urlescape}">rss</a></li>
+    </ul>
+
+    <h2 class="no-link no-border">{file|urlescape}</h2>
+
+    <table>
+    {entries%filelogentry}
+    </table>
+
+    <div class="page-path">
+    {nav%filenaventry}
+    </div>
+
+{footer}
diff --git a/sys/lib/python/mercurial/templates/monoblue/filerevision.tmpl b/sys/lib/python/mercurial/templates/monoblue/filerevision.tmpl
new file mode 100644 (file)
index 0000000..f58c633
--- /dev/null
@@ -0,0 +1,63 @@
+{header}
+<title>{repo|escape}: {file|escape}@{node|short}</title>
+    <link rel="alternate" type="application/atom+xml" href="{url}atom-log" title="Atom feed for {repo|escape}"/>
+    <link rel="alternate" type="application/rss+xml" href="{url}rss-log" title="RSS feed for {repo|escape}"/>
+</head>
+
+<body>
+<div id="container">
+    <div class="page-header">
+        <h1><a href="{url}summary{sessionvars%urlparameter}">{repo|escape}</a> / file revision</h1>
+
+        <form action="{url}log">
+            {sessionvars%hiddenformentry}
+            <dl class="search">
+                <dt><label>Search: </label></dt>
+                <dd><input type="text" name="rev" /></dd>
+            </dl>
+        </form>
+
+        <ul class="page-nav">
+            <li><a href="{url}summary{sessionvars%urlparameter}">summary</a></li>
+            <li><a href="{url}shortlog{sessionvars%urlparameter}">shortlog</a></li>
+            <li><a href="{url}changelog{sessionvars%urlparameter}">changelog</a></li>
+            <li><a href="{url}graph/{node|short}{sessionvars%urlparameter}">graph</a></li>
+            <li><a href="{url}tags{sessionvars%urlparameter}">tags</a></li>
+            <li><a href="{url}branches{sessionvars%urlparameter}">branches</a></li>
+            <li><a href="{url}file/{node|short}{path|urlescape}{sessionvars%urlparameter}">files</a></li>
+        </ul>
+    </div>
+
+    <ul class="submenu">
+        <li class="current">file</li>
+        <li><a href="{url}log/{node|short}/{file|urlescape}{sessionvars%urlparameter}">revisions</a></li>
+        <li><a href="{url}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">annotate</a></li>
+        <li><a href="{url}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">diff</a></li>
+        <li><a href="{url}raw-file/{node|short}/{file|urlescape}">raw</a></li>
+    </ul>
+
+    <h2 class="no-link no-border">{file|escape}@{node|short}</h2>
+    <h3 class="changeset">{file|escape}</h3>
+    <p class="changeset-age"><span>{date|age} ago</span></p>
+
+    <dl class="overview">
+        <dt>author</dt>
+        <dd>{author|obfuscate}</dd>
+        <dt>date</dt>
+        <dd>{date|date}</dd>
+        {branch%filerevbranch}
+        <dt>changeset {rev}</dt>
+        <dd><a class="list" href="{url}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a></dd>
+        {parent%filerevparent}
+        {child%filerevchild}
+        <dt>permissions</dt>
+        <dd>{permissions|permissions}</dd>
+    </dl>
+
+    <p class="description">{desc|strip|escape|addbreaks|nonempty}</p>
+
+    <div class="source">
+    {text%fileline}
+    </div>
+
+{footer}
diff --git a/sys/lib/python/mercurial/templates/monoblue/footer.tmpl b/sys/lib/python/mercurial/templates/monoblue/footer.tmpl
new file mode 100644 (file)
index 0000000..cddaa92
--- /dev/null
@@ -0,0 +1,22 @@
+    <div class="page-footer">
+        <p>Mercurial Repository: {repo|escape}</p>
+        <ul class="rss-logo">
+            <li><a href="{url}rss-log">RSS</a></li>
+            <li><a href="{url}atom-log">Atom</a></li>
+        </ul>
+        {motd}
+    </div>
+
+    <div id="powered-by">
+        <p><a href="http://mercurial.selenic.com/" title="Mercurial"><img src="{staticurl}hglogo.png" width=75 height=90 border=0 alt="mercurial"></a></p>
+    </div>
+
+    <div id="corner-top-left"></div>
+    <div id="corner-top-right"></div>
+    <div id="corner-bottom-left"></div>
+    <div id="corner-bottom-right"></div>
+
+</div>
+
+</body>
+</html>
diff --git a/sys/lib/python/mercurial/templates/monoblue/graph.tmpl b/sys/lib/python/mercurial/templates/monoblue/graph.tmpl
new file mode 100644 (file)
index 0000000..ffd6b47
--- /dev/null
@@ -0,0 +1,118 @@
+{header}
+    <title>{repo|escape}: graph</title>
+    <link rel="alternate" type="application/atom+xml" href="{url}atom-log" title="Atom feed for {repo|escape}"/>
+    <link rel="alternate" type="application/rss+xml" href="{url}rss-log" title="RSS feed for {repo|escape}"/>
+    <!--[if IE]><script type="text/javascript" src="{staticurl}excanvas.js"></script><![endif]-->
+</head>
+
+<body>
+<div id="container">
+    <div class="page-header">
+        <h1><a href="{url}summary{sessionvars%urlparameter}">{repo|escape}</a> / graph</h1>
+
+        <form action="{url}log">
+            {sessionvars%hiddenformentry}
+            <dl class="search">
+                <dt><label>Search: </label></dt>
+                <dd><input type="text" name="rev" /></dd>
+            </dl>
+        </form>
+
+        <ul class="page-nav">
+            <li><a href="{url}summary{sessionvars%urlparameter}">summary</a></li>
+            <li><a href="{url}shortlog{sessionvars%urlparameter}">shortlog</a></li>
+            <li><a href="{url}changelog{sessionvars%urlparameter}">changelog</a></li>
+            <li class="current">graph</li>
+            <li><a href="{url}tags{sessionvars%urlparameter}">tags</a></li>
+            <li><a href="{url}branches{sessionvars%urlparameter}">branches</a></li>
+            <li><a href="{url}file/{node|short}{sessionvars%urlparameter}">files</a></li>
+        </ul>
+    </div>
+
+    <h2 class="no-link no-border">graph</h2>
+
+    <div id="noscript">The revision graph only works with JavaScript-enabled browsers.</div>
+    <div id="wrapper">
+        <ul id="nodebgs"></ul>
+        <canvas id="graph" width="224" height="{canvasheight}"></canvas>
+        <ul id="graphnodes"></ul>
+    </div>
+
+    <script type="text/javascript" src="{staticurl}graph.js"></script>
+    <script>
+    <!-- hide script content
+
+    document.getElementById('noscript').style.display = 'none';
+
+    var data = {jsdata|json};
+    var graph = new Graph();
+    graph.scale({bg_height});
+
+    graph.edge = function(x0, y0, x1, y1, color) {
+
+        this.setColor(color, 0.0, 0.65);
+        this.ctx.beginPath();
+        this.ctx.moveTo(x0, y0);
+        this.ctx.lineTo(x1, y1);
+        this.ctx.stroke();
+
+    }
+
+    var revlink = '<li style="_STYLE"><span class="desc">';
+    revlink += '<a href="{url}rev/_NODEID{sessionvars%urlparameter}" title="_NODEID">_DESC</a>';
+    revlink += '</span>_TAGS<span class="info">_DATE ago, by _USER</span></li>';
+
+    graph.vertex = function(x, y, color, parity, cur) {
+
+        this.ctx.beginPath();
+        color = this.setColor(color, 0.25, 0.75);
+        this.ctx.arc(x, y, radius, 0, Math.PI * 2, true);
+        this.ctx.fill();
+
+        var bg = '<li class="bg parity' + parity + '"></li>';
+        var left = (this.columns + 1) * this.bg_height;
+        var nstyle = 'padding-left: ' + left + 'px;';
+        var item = revlink.replace(/_STYLE/, nstyle);
+        item = item.replace(/_PARITY/, 'parity' + parity);
+        item = item.replace(/_NODEID/, cur[0]);
+        item = item.replace(/_NODEID/, cur[0]);
+       item = item.replace(/_DESC/, cur[3]);
+        item = item.replace(/_USER/, cur[4]);
+        item = item.replace(/_DATE/, cur[5]);
+
+        var tagspan = '';
+        if (cur[7].length || (cur[6][0] != 'default' || cur[6][1])) {
+            tagspan = '<span class="logtags">';
+            if (cur[6][1]) {
+                tagspan += '<span class="branchtag" title="' + cur[6][0] + '">';
+                tagspan += cur[6][0] + '</span> ';
+            } else if (!cur[6][1] && cur[6][0] != 'default') {
+                tagspan += '<span class="inbranchtag" title="' + cur[6][0] + '">';
+                tagspan += cur[6][0] + '</span> ';
+            }
+            if (cur[7].length) {
+                for (var t in cur[7]) {
+                    var tag = cur[7][t];
+                    tagspan += '<span class="tagtag">' + tag + '</span> ';
+                }
+            }
+            tagspan += '</span>';
+        }
+
+        item = item.replace(/_TAGS/, tagspan); 
+        return [bg, item];
+
+    }
+
+    graph.render(data);
+
+    // stop hiding script -->
+    </script>
+
+    <div class="page-path">
+        <a href="{url}graph/{rev}{lessvars%urlparameter}">less</a>
+        <a href="{url}graph/{rev}{morevars%urlparameter}">more</a>
+        | {changenav%navgraphentry}
+    </div>
+
+{footer}
diff --git a/sys/lib/python/mercurial/templates/monoblue/header.tmpl b/sys/lib/python/mercurial/templates/monoblue/header.tmpl
new file mode 100644 (file)
index 0000000..dd03884
--- /dev/null
@@ -0,0 +1,6 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+    <link rel="icon" href="{staticurl}hgicon.png" type="image/png" />
+    <meta name="robots" content="index, nofollow"/>
+    <link rel="stylesheet" href="{staticurl}style-monoblue.css" type="text/css" />
diff --git a/sys/lib/python/mercurial/templates/monoblue/index.tmpl b/sys/lib/python/mercurial/templates/monoblue/index.tmpl
new file mode 100644 (file)
index 0000000..e04f5c2
--- /dev/null
@@ -0,0 +1,39 @@
+{header}
+    <title>{repo|escape}: Mercurial repositories index</title>
+</head>
+
+<body>
+<div id="container">
+    <div class="page-header">
+        <h1>Mercurial Repositories</h1>
+        <ul class="page-nav">
+        </ul>
+    </div>
+    
+    <table cellspacing="0">
+        <tr>
+            <td><a href="?sort={sort_name}">Name</a></td>
+            <td><a href="?sort={sort_description}">Description</a></td>
+            <td><a href="?sort={sort_contact}">Contact</a></td>
+            <td><a href="?sort={sort_lastchange}">Last change</a></td>
+            <td>&nbsp;</td>
+            <td>&nbsp;</td>
+        </tr>
+        {entries%indexentry}
+    </table>
+    <div class="page-footer">
+        {motd}
+    </div>
+
+    <div id="powered-by">
+        <p><a href="http://mercurial.selenic.com/" title="Mercurial"><img src="{staticurl}hglogo.png" width=75 height=90 border=0 alt="mercurial"></a></p>
+    </div>
+
+    <div id="corner-top-left"></div>
+    <div id="corner-top-right"></div>
+    <div id="corner-bottom-left"></div>
+    <div id="corner-bottom-right"></div>
+
+</div>
+</body>
+</html>
diff --git a/sys/lib/python/mercurial/templates/monoblue/manifest.tmpl b/sys/lib/python/mercurial/templates/monoblue/manifest.tmpl
new file mode 100644 (file)
index 0000000..f9da081
--- /dev/null
@@ -0,0 +1,51 @@
+{header}
+<title>{repo|escape}: files</title>
+    <link rel="alternate" type="application/atom+xml" href="{url}atom-log" title="Atom feed for {repo|escape}"/>
+    <link rel="alternate" type="application/rss+xml" href="{url}rss-log" title="RSS feed for {repo|escape}"/>
+</head>
+
+<body>
+<div id="container">
+    <div class="page-header">
+        <h1><a href="{url}summary{sessionvars%urlparameter}">{repo|escape}</a> / files</h1>
+
+        <form action="{url}log">
+            {sessionvars%hiddenformentry}
+            <dl class="search">
+                <dt><label>Search: </label></dt>
+                <dd><input type="text" name="rev" /></dd>
+            </dl>
+        </form>
+
+        <ul class="page-nav">
+            <li><a href="{url}summary{sessionvars%urlparameter}">summary</a></li>
+            <li><a href="{url}shortlog{sessionvars%urlparameter}">shortlog</a></li>
+            <li><a href="{url}changelog{sessionvars%urlparameter}">changelog</a></li>
+            <li><a href="{url}graph/{node|short}{sessionvars%urlparameter}">graph</a></li>
+            <li><a href="{url}tags{sessionvars%urlparameter}">tags</a></li>
+            <li><a href="{url}branches{sessionvars%urlparameter}">branches</a></li>
+            <li class="current">files</li>
+        </ul>
+    </div>
+
+    <ul class="submenu">
+        <li><a href="{url}rev/{node|short}{sessionvars%urlparameter}">changeset</a> {archives%archiveentry}</li>
+        {archives%archiveentry}
+    </ul>
+
+    <h2 class="no-link no-border">files</h2>
+    <p class="files">{path|escape} <span class="logtags">{inbranch%inbranchtag}{branches%branchtag}{tags%tagtag}</span></p>
+
+    <table>
+        <tr class="parity{upparity}">
+            <td>drwxr-xr-x</td>
+            <td></td>
+            <td></td>
+            <td><a href="{url}file/{node|short}{up|urlescape}{sessionvars%urlparameter}">[up]</a></td>
+            <td class="link">&nbsp;</td>
+        </tr>
+        {dentries%direntry}
+        {fentries%fileentry}
+    </table>
+
+{footer}
diff --git a/sys/lib/python/mercurial/templates/monoblue/map b/sys/lib/python/mercurial/templates/monoblue/map
new file mode 100644 (file)
index 0000000..146e3f6
--- /dev/null
@@ -0,0 +1,214 @@
+default = 'summary'
+mimetype = 'text/html; charset={encoding}'
+header = header.tmpl
+footer = footer.tmpl
+search = search.tmpl
+changelog = changelog.tmpl
+summary = summary.tmpl
+error = error.tmpl
+notfound = notfound.tmpl
+naventry = '<a href="{url}log/{node|short}{sessionvars%urlparameter}">{label|escape}</a> '
+navshortentry = '<a href="{url}shortlog/{node|short}{sessionvars%urlparameter}">{label|escape}</a> '
+navgraphentry = '<a href="{url}graph/{node|short}{sessionvars%urlparameter}">{label|escape}</a> '
+filenaventry = '<a href="{url}log/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{label|escape}</a>'
+filedifflink = '<a href="{url}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{file|escape}</a> '
+filenodelink = '
+  <tr class="parity{parity}">
+    <td><a href="{url}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{file|escape}</a></td>
+    <td></td>
+    <td>
+      <a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">file</a> |
+      <a href="{url}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">annotate</a> |
+      <a href="{url}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">diff</a> |
+      <a href="{url}log/{node|short}/{file|urlescape}{sessionvars%urlparameter}">revisions</a>
+    </td>
+  </tr>'
+filenolink = '
+  <tr class="parity{parity}">
+    <td>
+      <a href="{url}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{file|escape}</a></td><td></td><td>file |
+      annotate |
+      <a href="{url}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">diff</a> |
+      <a href="{url}log/{node|short}/{file|urlescape}{sessionvars%urlparameter}">revisions</a>
+    </td>
+  </tr>'
+fileellipses = '...'
+changelogentry = changelogentry.tmpl
+searchentry = changelogentry.tmpl
+changeset = changeset.tmpl
+manifest = manifest.tmpl
+direntry = '
+  <tr class="parity{parity}">
+    <td>drwxr-xr-x</td>
+    <td></td>
+    <td></td>
+    <td><a href="{url}file/{node|short}{path|urlescape}{sessionvars%urlparameter}">{basename|escape}</a></td>
+    <td><a href="{url}file/{node|short}{path|urlescape}{sessionvars%urlparameter}">files</a></td>
+  </tr>'
+fileentry = '
+  <tr class="parity{parity}">
+    <td>{permissions|permissions}</td>
+    <td>{date|isodate}</td>
+    <td>{size}</td>
+    <td><a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{basename|escape}</a></td>
+    <td>
+      <a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">file</a> |
+      <a href="{url}log/{node|short}/{file|urlescape}{sessionvars%urlparameter}">revisions</a> |
+      <a href="{url}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">annotate</a>
+    </td>
+  </tr>'
+filerevision = filerevision.tmpl
+fileannotate = fileannotate.tmpl
+filediff = filediff.tmpl
+filelog = filelog.tmpl
+fileline = '
+  <div style="font-family:monospace" class="parity{parity}">
+    <pre><a class="linenr" href="#{lineid}" id="{lineid}">{linenumber}</a> {line|escape}</pre>
+  </div>'
+annotateline = '
+  <tr class="parity{parity}">
+    <td class="linenr">
+      <a href="{url}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}#{targetline}"
+         title="{node|short}: {desc|escape|firstline}">{author|user}@{rev}</a>
+    </td>
+    <td class="lineno">
+      <a href="#{lineid}" id="{lineid}">{linenumber}</a>
+    </td>
+    <td class="source">{line|escape}</td>
+  </tr>'
+difflineplus = '<span style="color:#008800;"><a class="linenr" href="#{lineid}" id="{lineid}">{linenumber}</a> {line|escape}</span>'
+difflineminus = '<span style="color:#cc0000;"><a class="linenr" href="#{lineid}" id="{lineid}">{linenumber}</a> {line|escape}</span>'
+difflineat = '<span style="color:#990099;"><a class="linenr" href="#{lineid}" id="{lineid}">{linenumber}</a> {line|escape}</span>'
+diffline = '<span><a class="linenr" href="#{lineid}" id="{lineid}">{linenumber}</a> {line|escape}</span>'
+changelogparent = '
+  <tr>
+    <th class="parent">parent {rev}:</th>
+    <td class="parent">
+      <a href="{url}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a>
+    </td>
+  </tr>'
+changesetbranch = '<dt>branch</dt><dd>{name}</dd>'
+changesetparent = '
+  <dt>parent {rev}</dt>
+  <dd><a href="{url}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a></dd>'
+filerevbranch = '<dt>branch</dt><dd>{name}</dd>'
+filerevparent = '
+  <dt>parent {rev}</dt>
+  <dd>
+    <a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">
+      {rename%filerename}{node|short}
+    </a>
+  </dd>'
+filerename = '{file|escape}@'
+filelogrename = '| <a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">base</a>'
+fileannotateparent = '
+  <dt>parent {rev}</dt>
+  <dd>
+    <a href="{url}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">
+      {rename%filerename}{node|short}
+    </a>
+  </dd>'
+changelogchild = '
+  <dt>child {rev}:</dt>
+  <dd><a href="{url}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a></dd>'
+changesetchild = '
+  <dt>child {rev}</dt>
+  <dd><a href="{url}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a></dd>'
+filerevchild = '
+  <dt>child {rev}</dt>
+  <dd>
+    <a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{node|short}</a>
+  </dd>'
+fileannotatechild = '
+  <dt>child {rev}</dt>
+  <dd>
+    <a href="{url}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{node|short}</a>
+  </dd>'
+tags = tags.tmpl
+tagentry = '
+  <tr class="parity{parity}">
+    <td class="nowrap">{date|age} ago</td>
+    <td><a href="{url}rev/{node|short}{sessionvars%urlparameter}">{tag|escape}</a></td>
+    <td class="nowrap">
+      <a href="{url}rev/{node|short}{sessionvars%urlparameter}">changeset</a> |
+      <a href="{url}log/{node|short}{sessionvars%urlparameter}">changelog</a> |
+      <a href="{url}file/{node|short}{sessionvars%urlparameter}">files</a>
+    </td>
+  </tr>'
+branches = branches.tmpl
+branchentry = '
+  <tr class="parity{parity}">
+    <td class="nowrap">{date|age} ago</td>
+    <td><a href="{url}shortlog/{node|short}{sessionvars%urlparameter}">{node|short}</a></td>
+    <td class="{status}">{branch|escape}</td>
+    <td class="nowrap">
+      <a href="{url}rev/{node|short}{sessionvars%urlparameter}">changeset</a> |
+      <a href="{url}log/{node|short}{sessionvars%urlparameter}">changelog</a> |
+      <a href="{url}file/{node|short}{sessionvars%urlparameter}">files</a>
+    </td>
+  </tr>'
+diffblock = '<pre>{lines}</pre>'
+filediffparent = '
+  <dt>parent {rev}</dt>
+  <dd><a href="{url}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{node|short}</a></dd>'
+filelogparent = '
+  <tr>
+    <td align="right">parent {rev}:&nbsp;</td>
+    <td><a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{node|short}</a></td>
+  </tr>'
+filediffchild = '
+  <dt>child {rev}</dt>
+  <dd><a href="{url}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{node|short}</a></dd>'
+filelogchild = '
+  <tr>
+    <td align="right">child {rev}:&nbsp;</td>
+    <td><a href="{url}file{node|short}/{file|urlescape}{sessionvars%urlparameter}">{node|short}</a></td>
+  </tr>'
+shortlog = shortlog.tmpl
+tagtag = '<span class="tagtag" title="{name}">{name}</span> '
+branchtag = '<span class="branchtag" title="{name}">{name}</span> '
+inbranchtag = '<span class="inbranchtag" title="{name}">{name}</span> '
+shortlogentry = '
+  <tr class="parity{parity}">
+    <td class="nowrap">{date|age} ago</td>
+    <td>{author|person}</td>
+    <td>
+      <a href="{url}rev/{node|short}{sessionvars%urlparameter}">
+        {desc|strip|firstline|escape|nonempty}
+        <span class="logtags">{inbranch%inbranchtag}{branches%branchtag}{tags%tagtag}</span>
+      </a>
+    </td>
+    <td class="nowrap">
+      <a href="{url}rev/{node|short}{sessionvars%urlparameter}">changeset</a> |
+      <a href="{url}file/{node|short}{sessionvars%urlparameter}">files</a>
+    </td>
+  </tr>'
+filelogentry = '
+  <tr class="parity{parity}">
+    <td class="nowrap">{date|age} ago</td>
+    <td><a href="{url}rev/{node|short}{sessionvars%urlparameter}">{desc|strip|firstline|escape|nonempty}</a></td>
+    <td class="nowrap">
+      <a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">file</a>&nbsp;|&nbsp;<a href="{url}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">diff</a>&nbsp;|&nbsp;<a href="{url}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">annotate</a>
+      {rename%filelogrename}
+    </td>
+  </tr>'
+archiveentry = '<li><a href="{url}archive/{node|short}{extension}">{type|escape}</a></li>'
+indexentry = '
+  <tr class="parity{parity}">
+    <td><a href="{url}{sessionvars%urlparameter}">{name|escape}</a></td>
+    <td>{description}</td>
+    <td>{contact|obfuscate}</td>
+    <td>{lastchange|age} ago</td>
+    <td class="indexlinks">{archives%indexarchiveentry}</td>
+    <td>
+      <div class="rss_logo">
+        <a href="{url}rss-log">RSS</a>
+        <a href="{url}atom-log">Atom</a>
+      </div>
+    </td>
+  </tr>\n'
+indexarchiveentry = '<a href="{url}archive/{node|short}{extension}">{type|escape}</a> '
+index = index.tmpl
+urlparameter = '{separator}{name}={value|urlescape}'
+hiddenformentry = '<input type="hidden" name="{name}" value="{value|escape}" />'
+graph = graph.tmpl
diff --git a/sys/lib/python/mercurial/templates/monoblue/notfound.tmpl b/sys/lib/python/mercurial/templates/monoblue/notfound.tmpl
new file mode 100644 (file)
index 0000000..230bc04
--- /dev/null
@@ -0,0 +1,35 @@
+{header}
+    <title>{repo|escape}: Mercurial repository not found</title>
+    <link rel="alternate" type="application/atom+xml" href="{url}atom-log" title="Atom feed for {repo|escape}"/>
+    <link rel="alternate" type="application/rss+xml" href="{url}rss-log" title="RSS feed for {repo|escape}"/>
+</head>
+
+<body>
+<div id="container">
+    <div class="page-header">
+        <h1><a href="{url}summary{sessionvars%urlparameter}">{repo|escape}</a> / Not found: {repo|escape}</h1>
+
+        <form action="{url}log">
+            {sessionvars%hiddenformentry}
+            <dl class="search">
+                <dt><label>Search: </label></dt>
+                <dd><input type="text" name="rev" /></dd>
+            </dl>
+        </form>
+
+        <ul class="page-nav">
+            <li class="current">summary</li>
+            <li><a href="{url}shortlog{sessionvars%urlparameter}">shortlog</a></li>
+            <li><a href="{url}log{sessionvars%urlparameter}">changelog</a></li>
+            <li><a href="{url}graph/{node|short}{sessionvars%urlparameter}">graph</a></li>
+            <li><a href="{url}tags{sessionvars%urlparameter}">tags</a></li>
+            <li><a href="{url}branches{sessionvars%urlparameter}">branches</a></li>
+            <li><a href="{url}file/{node|short}{sessionvars%urlparameter}">files</a>{archives%archiveentry}</li>
+        </ul>
+    </div>
+
+    <h2 class="no-link no-border">Not Found</h2>
+    <p class="normal">The specified repository "{repo|escape}" is unknown, sorry.</p>
+    <p class="normal">Please go back to the <a href="{url}">main repository list page</a>.</p>
+
+{footer}
diff --git a/sys/lib/python/mercurial/templates/monoblue/search.tmpl b/sys/lib/python/mercurial/templates/monoblue/search.tmpl
new file mode 100644 (file)
index 0000000..7b37c52
--- /dev/null
@@ -0,0 +1,34 @@
+{header}
+    <title>{repo|escape}: Search</title>
+    <link rel="alternate" type="application/atom+xml" href="{url}atom-log" title="Atom feed for {repo|escape}"/>
+    <link rel="alternate" type="application/rss+xml" href="{url}rss-log" title="RSS feed for {repo|escape}"/>
+</head>
+
+<body>
+<div id="container">
+    <div class="page-header">
+        <h1><a href="{url}summary{sessionvars%urlparameter}">{repo|escape}</a> / search</h1>
+
+        <form action="{url}log">
+            {sessionvars%hiddenformentry}
+            <dl class="search">
+                <dt><label>Search: </label></dt>
+                <dd><input type="text" name="rev" value="{query|escape}" /></dd>
+            </dl>
+        </form>
+
+        <ul class="page-nav">
+            <li><a href="{url}summary{sessionvars%urlparameter}">summary</a></li>
+            <li><a href="{url}shortlog{sessionvars%urlparameter}">shortlog</a></li>
+            <li><a href="{url}log{sessionvars%urlparameter}">changelog</a></li>
+            <li><a href="{url}graph/{node|short}{sessionvars%urlparameter}">graph</a></li>
+            <li><a href="{url}tags{sessionvars%urlparameter}">tags</a></li>
+            <li><a href="{url}branches{sessionvars%urlparameter}">branches</a></li>
+            <li><a href="{url}file/{node|short}{sessionvars%urlparameter}">files</a>{archives%archiveentry}
+        </ul>
+    </div>
+
+    <h2 class="no-link no-border">searching for {query|escape}</h2>
+    {entries}
+
+{footer}
diff --git a/sys/lib/python/mercurial/templates/monoblue/shortlog.tmpl b/sys/lib/python/mercurial/templates/monoblue/shortlog.tmpl
new file mode 100644 (file)
index 0000000..5de0927
--- /dev/null
@@ -0,0 +1,41 @@
+{header}
+    <title>{repo|escape}: shortlog</title>
+    <link rel="alternate" type="application/atom+xml" href="{url}atom-log" title="Atom feed for {repo|escape}"/>
+    <link rel="alternate" type="application/rss+xml" href="{url}rss-log" title="RSS feed for {repo|escape}"/>
+</head>
+
+<body>
+<div id="container">
+    <div class="page-header">
+        <h1><a href="{url}summary{sessionvars%urlparameter}">{repo|escape}</a> / shortlog</h1>
+
+        <form action="{url}log">
+            {sessionvars%hiddenformentry}
+            <dl class="search">
+                <dt><label>Search: </label></dt>
+                <dd><input type="text" name="rev" /></dd>
+            </dl>
+        </form>
+
+        <ul class="page-nav">
+            <li><a href="{url}summary{sessionvars%urlparameter}">summary</a></li>
+            <li class="current">shortlog</li>
+            <li><a href="{url}log{sessionvars%urlparameter}">changelog</a></li>
+            <li><a href="{url}graph/{node|short}{sessionvars%urlparameter}">graph</a></li>
+            <li><a href="{url}tags{sessionvars%urlparameter}">tags</a></li>
+            <li><a href="{url}branches{sessionvars%urlparameter}">branches</a></li>
+            <li><a href="{url}file/{node|short}{sessionvars%urlparameter}">files</a>{archives%archiveentry}</li>
+        </ul>
+    </div>
+
+    <h2 class="no-link no-border">shortlog</h2>
+
+    <table>
+{entries%shortlogentry}
+    </table>
+
+    <div class="page-path">
+{changenav%navshortentry}
+    </div>
+
+{footer}
diff --git a/sys/lib/python/mercurial/templates/monoblue/summary.tmpl b/sys/lib/python/mercurial/templates/monoblue/summary.tmpl
new file mode 100644 (file)
index 0000000..b167965
--- /dev/null
@@ -0,0 +1,66 @@
+{header}
+    <title>{repo|escape}: Summary</title>
+    <link rel="alternate" type="application/atom+xml" href="{url}atom-log" title="Atom feed for {repo|escape}"/>
+    <link rel="alternate" type="application/rss+xml" href="{url}rss-log" title="RSS feed for {repo|escape}"/>
+</head>
+
+<body>
+<div id="container">
+    <div class="page-header">
+        <h1><a href="{url}summary{sessionvars%urlparameter}">{repo|escape}</a> / summary</h1>
+
+        <form action="{url}log">
+            {sessionvars%hiddenformentry}
+            <dl class="search">
+                <dt><label>Search: </label></dt>
+                <dd><input type="text" name="rev" /></dd>
+            </dl>
+        </form>
+
+        <ul class="page-nav">
+            <li class="current">summary</li>
+            <li><a href="{url}shortlog{sessionvars%urlparameter}">shortlog</a></li>
+            <li><a href="{url}log{sessionvars%urlparameter}">changelog</a></li>
+            <li><a href="{url}graph/{node|short}{sessionvars%urlparameter}">graph</a></li>
+            <li><a href="{url}tags{sessionvars%urlparameter}">tags</a></li>
+            <li><a href="{url}branches{sessionvars%urlparameter}">branches</a></li>
+            <li><a href="{url}file/{node|short}{sessionvars%urlparameter}">files</a></li>
+        </ul>
+    </div>
+
+    <h2 class="no-link no-border">Mercurial Repository Overview</h2>
+    <dl class="overview">
+        <dt>name</dt>
+        <dd>{repo|escape}</dd>
+        <dt>description</dt>
+        <dd>{desc}</dd>
+        <dt>owner</dt>
+        <dd>{owner|obfuscate}</dd>
+        <dt>last change</dt>
+        <dd>{lastchange|rfc822date}</dd>
+    </dl>
+
+    <h2><a href="{url}shortlog{sessionvars%urlparameter}">Changes</a></h2>
+    <table>
+{shortlog}
+        <tr class="light">
+            <td colspan="4"><a class="list" href="{url}shortlog{sessionvars%urlparameter}">...</a></td>
+        </tr>
+    </table>
+
+    <h2><a href="{url}tags{sessionvars%urlparameter}">Tags</a></h2>
+    <table>
+{tags}
+        <tr class="light">
+            <td colspan="3"><a class="list" href="{url}tags{sessionvars%urlparameter}">...</a></td>
+        </tr>
+    </table>
+
+    <h2 class="no-link">Branches</h2>
+    <table>
+    {branches%branchentry}
+        <tr class="light">
+          <td colspan="4"><a class="list"  href="#">...</a></td>
+        </tr>
+    </table>
+{footer}
diff --git a/sys/lib/python/mercurial/templates/monoblue/tags.tmpl b/sys/lib/python/mercurial/templates/monoblue/tags.tmpl
new file mode 100644 (file)
index 0000000..54a6721
--- /dev/null
@@ -0,0 +1,36 @@
+{header}
+    <title>{repo|escape}: Tags</title>
+    <link rel="alternate" type="application/atom+xml" href="{url}atom-log" title="Atom feed for {repo|escape}"/>
+    <link rel="alternate" type="application/rss+xml" href="{url}rss-log" title="RSS feed for {repo|escape}"/>
+</head>
+
+<body>
+<div id="container">
+    <div class="page-header">
+        <h1><a href="{url}summary{sessionvars%urlparameter}">{repo|escape}</a> / Tags</h1>
+
+        <form action="{url}log">
+            {sessionvars%hiddenformentry}
+            <dl class="search">
+                <dt><label>Search: </label></dt>
+                <dd><input type="text" name="rev" /></dd>
+            </dl>
+        </form>
+
+        <ul class="page-nav">
+            <li><a href="{url}summary{sessionvars%urlparameter}">summary</a></li>
+            <li><a href="{url}shortlog{sessionvars%urlparameter}">shortlog</a></li>
+            <li><a href="{url}changelog{sessionvars%urlparameter}">changelog</a></li>
+            <li><a href="{url}graph/{node|short}{sessionvars%urlparameter}">graph</a></li>
+            <li class="current">tags</li>
+            <li><a href="{url}branches{sessionvars%urlparameter}">branches</a></li>
+            <li><a href="{url}file/{node|short}{sessionvars%urlparameter}">files</a></li>
+        </ul>
+    </div>
+
+    <h2 class="no-link no-border">tags</h2>
+    <table cellspacing="0">
+{entries%tagentry}
+    </table>
+
+{footer}
diff --git a/sys/lib/python/mercurial/templates/paper/branches.tmpl b/sys/lib/python/mercurial/templates/paper/branches.tmpl
new file mode 100644 (file)
index 0000000..e3648b8
--- /dev/null
@@ -0,0 +1,45 @@
+{header}
+<title>{repo|escape}: branches</title>
+<link rel="alternate" type="application/atom+xml"
+   href="{url}atom-tags" title="Atom feed for {repo|escape}: branches" />
+<link rel="alternate" type="application/rss+xml"
+   href="{url}rss-tags" title="RSS feed for {repo|escape}: branches" />
+</head>
+<body>
+
+<div class="container">
+<div class="menu">
+<div class="logo">
+<a href="http://mercurial.selenic.com/">
+<img src="{staticurl}hglogo.png" alt="mercurial" /></a>
+</div>
+<ul>
+<li><a href="{url}shortlog{sessionvars%urlparameter}">log</a></li>
+<li><a href="{url}graph{sessionvars%urlparameter}">graph</a></li>
+<li><a href="{url}tags{sessionvars%urlparameter}">tags</a></li>
+<li class="active">branches</li>
+</ul>
+</div>
+
+<div class="main">
+<h2><a href="{url}{sessionvars%urlparameter}">{repo|escape}</a></h2>
+<h3>branches</h3>
+
+<form class="search" action="{url}log">
+{sessionvars%hiddenformentry}
+<p><input name="rev" id="search1" type="text" size="30" /></p>
+<div id="hint">find changesets by author, revision,
+files, or words in the commit message</div>
+</form>
+
+<table class="bigtable">
+<tr>
+ <th>branch</th>
+ <th>node</th>
+</tr>
+{entries%branchentry}
+</table>
+</div>
+</div>
+
+{footer}
diff --git a/sys/lib/python/mercurial/templates/paper/changeset.tmpl b/sys/lib/python/mercurial/templates/paper/changeset.tmpl
new file mode 100644 (file)
index 0000000..cce7aae
--- /dev/null
@@ -0,0 +1,71 @@
+{header}
+<title>{repo|escape}: {node|short}</title>
+</head>
+<body>
+<div class="container">
+<div class="menu">
+<div class="logo">
+<a href="http://mercurial.selenic.com/">
+<img src="{staticurl}hglogo.png" alt="mercurial" /></a>
+</div>
+<ul>
+ <li><a href="{url}shortlog/{node|short}{sessionvars%urlparameter}">log</a></li>
+ <li><a href="{url}graph/{node|short}{sessionvars%urlparameter}">graph</a></li>
+ <li><a href="{url}tags{sessionvars%urlparameter}">tags</a></li>
+ <li><a href="{url}branches{sessionvars%urlparameter}">branches</a></li>
+</ul>
+<ul>
+ <li class="active">changeset</li>
+ <li><a href="{url}raw-rev/{node|short}{sessionvars%urlparameter}">raw</a></li>
+ <li><a href="{url}file/{node|short}{sessionvars%urlparameter}">browse</a></li>
+</ul>
+<ul>
+ {archives%archiveentry}
+</ul>
+</div>
+
+<div class="main">
+
+<h2><a href="{url}{sessionvars%urlparameter}">{repo|escape}</a></h2>
+<h3>changeset {rev}:{node|short} {changesetbranch%changelogbranchname} {changesettag}</h3>
+
+<form class="search" action="{url}log">
+{sessionvars%hiddenformentry}
+<p><input name="rev" id="search1" type="text" size="30" /></p>
+<div id="hint">find changesets by author, revision,
+files, or words in the commit message</div>
+</form>
+
+<div class="description">{desc|strip|escape|addbreaks|nonempty}</div>
+
+<table id="changesetEntry">
+<tr>
+ <th class="author">author</th>
+ <td class="author">{author|obfuscate}</td>
+</tr>
+<tr>
+ <th class="date">date</th>
+ <td class="date">{date|date} ({date|age} ago)</td></tr>
+<tr>
+ <th class="author">parents</th>
+ <td class="author">{parent%changesetparent}</td>
+</tr>
+<tr>
+ <th class="author">children</th>
+ <td class="author">{child%changesetchild}</td>
+</tr>
+<tr>
+ <th class="files">files</th>
+ <td class="files">{files}</td>
+</tr>
+</table>
+
+<div class="overflow">
+<div class="sourcefirst">   line diff</div>
+
+{diff}
+</div>
+
+</div>
+</div>
+{footer}
diff --git a/sys/lib/python/mercurial/templates/paper/error.tmpl b/sys/lib/python/mercurial/templates/paper/error.tmpl
new file mode 100644 (file)
index 0000000..d431025
--- /dev/null
@@ -0,0 +1,43 @@
+{header}
+<title>{repo|escape}: error</title>
+</head>
+<body>
+
+<div class="container">
+<div class="menu">
+<div class="logo">
+<a href="http://mercurial.selenic.com/">
+<img src="{staticurl}hglogo.png" width=75 height=90 border=0 alt="mercurial" /></a>
+</div>
+<ul>
+<li><a href="{url}shortlog{sessionvars%urlparameter}">log</a></li>
+<li><a href="{url}graph{sessionvars%urlparameter}">graph</a></li>
+<li><a href="{url}tags{sessionvars%urlparameter}">tags</a></li>
+<li><a href="{url}branches{sessionvars%urlparameter}">branches</a></li>
+</ul>
+</div>
+
+<div class="main">
+
+<h2><a href="{url}{sessionvars%urlparameter}">{repo|escape}</a></h2>
+<h3>error</h3>
+
+<form class="search" action="{url}log">
+{sessionvars%hiddenformentry}
+<p><input name="rev" id="search1" type="text" size="30"></p>
+<div id="hint">find changesets by author, revision,
+files, or words in the commit message</div>
+</form>
+
+<div class="description">
+<p>
+An error occurred while processing your request:
+</p>
+<p>
+{error|escape}
+</p>
+</div>
+</div>
+</div>
+
+{footer}
diff --git a/sys/lib/python/mercurial/templates/paper/fileannotate.tmpl b/sys/lib/python/mercurial/templates/paper/fileannotate.tmpl
new file mode 100644 (file)
index 0000000..5465a48
--- /dev/null
@@ -0,0 +1,77 @@
+{header}
+<title>{repo|escape}: {file|escape} annotate</title>
+</head>
+<body>
+
+<div class="container">
+<div class="menu">
+<div class="logo">
+<a href="http://mercurial.selenic.com/">
+<img src="{staticurl}hglogo.png" alt="mercurial" /></a>
+</div>
+<ul>
+<li><a href="{url}shortlog/{node|short}{sessionvars%urlparameter}">log</a></li>
+<li><a href="{url}graph/{node|short}{sessionvars%urlparameter}">graph</a></li>
+<li><a href="{url}tags{sessionvars%urlparameter}">tags</a></li>
+<li><a href="{url}branches{sessionvars%urlparameter}">branches</a></li>
+</ul>
+
+<ul>
+<li><a href="{url}rev/{node|short}{sessionvars%urlparameter}">changeset</a></li>
+<li><a href="{url}file/{node|short}{path|urlescape}{sessionvars%urlparameter}">browse</a></li>
+</ul>
+<ul>
+<li><a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">file</a></li>
+<li><a href="{url}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">diff</a></li>
+<li class="active">annotate</li>
+<li><a href="{url}log/{node|short}/{file|urlescape}{sessionvars%urlparameter}">file log</a></li>
+<li><a href="{url}raw-annotate/{node|short}/{file|urlescape}">raw</a></li>
+</ul>
+</div>
+
+<div class="main">
+<h2><a href="{url}{sessionvars%urlparameter}">{repo|escape}</a></h2>
+<h3>annotate {file|escape} @ {rev}:{node|short}</h3>
+
+<form class="search" action="{url}log">
+{sessionvars%hiddenformentry}
+<p><input name="rev" id="search1" type="text" size="30" /></p>
+<div id="hint">find changesets by author, revision,
+files, or words in the commit message</div>
+</form>
+
+<div class="description">{desc|strip|escape|addbreaks|nonempty}</div>
+
+<table id="changesetEntry">
+<tr>
+ <th class="author">author</th>
+ <td class="author">{author|obfuscate}</td>
+</tr>
+<tr>
+ <th class="date">date</th>
+ <td class="date">{date|date} ({date|age} ago)</td>
+</tr>
+<tr>
+ <th class="author">parents</th>
+ <td class="author">{parent%filerevparent}</td>
+</tr>
+<tr>
+ <th class="author">children</th>
+ <td class="author">{child%filerevchild}</td>
+</tr>
+{changesettag}
+</table>
+
+<div class="overflow">
+<table class="bigtable">
+<tr>
+ <th class="annotate">rev</th>
+ <th class="line">&nbsp;&nbsp;line source</th>
+</tr>
+{annotate%annotateline}
+</table>
+</div>
+</div>
+</div>
+
+{footer}
diff --git a/sys/lib/python/mercurial/templates/paper/filediff.tmpl b/sys/lib/python/mercurial/templates/paper/filediff.tmpl
new file mode 100644 (file)
index 0000000..d031b68
--- /dev/null
@@ -0,0 +1,72 @@
+{header}
+<title>{repo|escape}: {file|escape} diff</title>
+</head>
+<body>
+
+<div class="container">
+<div class="menu">
+<div class="logo">
+<a href="http://mercurial.selenic.com/">
+<img src="{staticurl}hglogo.png" alt="mercurial" /></a>
+</div>
+<ul>
+<li><a href="{url}shortlog/{node|short}{sessionvars%urlparameter}">log</a></li>
+<li><a href="{url}graph/{node|short}{sessionvars%urlparameter}">graph</a></li>
+<li><a href="{url}tags{sessionvars%urlparameter}">tags</a></li>
+<li><a href="{url}branches{sessionvars%urlparameter}">branches</a></li>
+</ul>
+<ul>
+<li><a href="{url}rev/{node|short}{sessionvars%urlparameter}">changeset</a></li>
+<li><a href="{url}file/{node|short}{path|urlescape}{sessionvars%urlparameter}">browse</a></li>
+</ul>
+<ul>
+<li><a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">file</a></li>
+<li class="active">diff</li>
+<li><a href="{url}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">annotate</a></li>
+<li><a href="{url}log/{node|short}/{file|urlescape}{sessionvars%urlparameter}">file log</a></li>
+<li><a href="{url}raw-file/{node|short}/{file|urlescape}">raw</a></li>
+</ul>
+</div>
+
+<div class="main">
+<h2><a href="{url}{sessionvars%urlparameter}">{repo|escape}</a></h2>
+<h3>diff {file|escape} @ {rev}:{node|short}</h3>
+
+<form class="search" action="{url}log">
+<p>{sessionvars%hiddenformentry}</p>
+<p><input name="rev" id="search1" type="text" size="30" /></p>
+<div id="hint">find changesets by author, revision,
+files, or words in the commit message</div>
+</form>
+
+<div class="description">{desc|strip|escape|addbreaks|nonempty}</div>
+
+<table id="changesetEntry">
+<tr>
+ <th>author</th>
+ <td>{author|obfuscate}</td>
+</tr>
+<tr>
+ <th>date</th>
+ <td>{date|date} ({date|age} ago)</td>
+</tr>
+<tr>
+ <th>parents</th>
+ <td>{parent%filerevparent}</td>
+</tr>
+<tr>
+ <th>children</th>
+ <td>{child%filerevchild}</td>
+</tr>
+{changesettag}
+</table>
+
+<div class="overflow">
+<div class="sourcefirst">   line diff</div>
+
+{diff}
+</div>
+</div>
+</div>
+
+{footer}
diff --git a/sys/lib/python/mercurial/templates/paper/filelog.tmpl b/sys/lib/python/mercurial/templates/paper/filelog.tmpl
new file mode 100644 (file)
index 0000000..3a2d285
--- /dev/null
@@ -0,0 +1,60 @@
+{header}
+<title>{repo|escape}: {file|escape} history</title>
+<link rel="alternate" type="application/atom+xml"
+   href="{url}atom-log/tip/{file|urlescape}" title="Atom feed for {repo|escape}:{file}" />
+<link rel="alternate" type="application/rss+xml"
+   href="{url}rss-log/tip/{file|urlescape}" title="RSS feed for {repo|escape}:{file}" />
+</head>
+<body>
+
+<div class="container">
+<div class="menu">
+<div class="logo">
+<a href="http://mercurial.selenic.com/">
+<img src="{staticurl}hglogo.png" alt="mercurial" /></a>
+</div>
+<ul>
+<li><a href="{url}shortlog/{node|short}{sessionvars%urlparameter}">log</a></li>
+<li><a href="{url}graph/{node|short}{sessionvars%urlparameter}">graph</a></li>
+<li><a href="{url}tags{sessionvars%urlparameter}">tags</a></li>
+<li><a href="{url}branches{sessionvars%urlparameter}">branches</a></li>
+</ul>
+<ul>
+<li><a href="{url}rev/{node|short}{sessionvars%urlparameter}">changeset</a></li>
+<li><a href="{url}file/{node|short}{path|urlescape}{sessionvars%urlparameter}">browse</a></li>
+</ul>
+<ul>
+<li><a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">file</a></li>
+<li><a href="{url}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">diff</a></li>
+<li><a href="{url}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">annotate</a></li>
+<li class="active">file log</li>
+<li><a href="{url}raw-file/{node|short}/{file|urlescape}">raw</a></li>
+</ul>
+</div>
+
+<div class="main">
+<h2><a href="{url}{sessionvars%urlparameter}">{repo|escape}</a></h2>
+<h3>log {file|escape}</h3>
+
+<form class="search" action="{url}log">
+{sessionvars%hiddenformentry}
+<p><input name="rev" id="search1" type="text" size="30" /></p>
+<div id="hint">find changesets by author, revision,
+files, or words in the commit message</div>
+</form>
+
+<div class="navigate">{nav%filenaventry}</div>
+
+<table class="bigtable">
+ <tr>
+  <th class="age">age</th>
+  <th class="author">author</th>
+  <th class="description">description</th>
+ </tr>
+{entries%filelogentry}
+</table>
+
+</div>
+</div>
+
+{footer}
diff --git a/sys/lib/python/mercurial/templates/paper/filelogentry.tmpl b/sys/lib/python/mercurial/templates/paper/filelogentry.tmpl
new file mode 100644 (file)
index 0000000..43e068c
--- /dev/null
@@ -0,0 +1,5 @@
+ <tr class="parity{parity}">
+  <td class="age">{date|age}</td>
+  <td class="author">{author|person}</td>
+  <td class="description"><a href="{url}rev/{node|short}{sessionvars%urlparameter}">{desc|strip|firstline|escape|nonempty}</a>{inbranch%changelogbranchname}{branches%changelogbranchhead}{tags%changelogtag}</td>
+ </tr>
diff --git a/sys/lib/python/mercurial/templates/paper/filerevision.tmpl b/sys/lib/python/mercurial/templates/paper/filerevision.tmpl
new file mode 100644 (file)
index 0000000..fec81b7
--- /dev/null
@@ -0,0 +1,72 @@
+{header}
+<title>{repo|escape}: {node|short} {file|escape}</title>
+</head>
+<body>
+
+<div class="container">
+<div class="menu">
+<div class="logo">
+<a href="http://mercurial.selenic.com/">
+<img src="{staticurl}hglogo.png" alt="mercurial" /></a>
+</div>
+<ul>
+<li><a href="{url}shortlog/{node|short}{sessionvars%urlparameter}">log</a></li>
+<li><a href="{url}graph/{node|short}{sessionvars%urlparameter}">graph</a></li>
+<li><a href="{url}tags{sessionvars%urlparameter}">tags</a></li>
+<li><a href="{url}branches{sessionvars%urlparameter}">branches</a></li>
+</ul>
+<ul>
+<li><a href="{url}rev/{node|short}{sessionvars%urlparameter}">changeset</a></li>
+<li><a href="{url}file/{node|short}{path|urlescape}{sessionvars%urlparameter}">browse</a></li>
+</ul>
+<ul>
+<li class="active">file</li>
+<li><a href="{url}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">diff</a></li>
+<li><a href="{url}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">annotate</a></li>
+<li><a href="{url}log/{node|short}/{file|urlescape}{sessionvars%urlparameter}">file log</a></li>
+<li><a href="{url}raw-file/{node|short}/{file|urlescape}">raw</a></li>
+</ul>
+</div>
+
+<div class="main">
+<h2><a href="{url}{sessionvars%urlparameter}">{repo|escape}</a></h2>
+<h3>view {file|escape} @ {rev}:{node|short}</h3>
+
+<form class="search" action="{url}log">
+{sessionvars%hiddenformentry}
+<p><input name="rev" id="search1" type="text" size="30" /></p>
+<div id="hint">find changesets by author, revision,
+files, or words in the commit message</div>
+</form>
+
+<div class="description">{desc|strip|escape|addbreaks|nonempty}</div>
+
+<table id="changesetEntry">
+<tr>
+ <th class="author">author</th>
+ <td class="author">{author|obfuscate}</td>
+</tr>
+<tr>
+ <th class="date">date</th>
+ <td class="date">{date|date} ({date|age} ago)</td>
+</tr>
+<tr>
+ <th class="author">parents</th>
+ <td class="author">{parent%filerevparent}</td>
+</tr>
+<tr>
+ <th class="author">children</th>
+ <td class="author">{child%filerevchild}</td>
+</tr>
+{changesettag}
+</table>
+
+<div class="overflow">
+<div class="sourcefirst"> line source</div>
+{text%fileline}
+<div class="sourcelast"></div>
+</div>
+</div>
+</div>
+
+{footer}
diff --git a/sys/lib/python/mercurial/templates/paper/footer.tmpl b/sys/lib/python/mercurial/templates/paper/footer.tmpl
new file mode 100644 (file)
index 0000000..6231a3c
--- /dev/null
@@ -0,0 +1,4 @@
+{motd}
+
+</body>
+</html>
diff --git a/sys/lib/python/mercurial/templates/paper/graph.tmpl b/sys/lib/python/mercurial/templates/paper/graph.tmpl
new file mode 100644 (file)
index 0000000..78b035c
--- /dev/null
@@ -0,0 +1,132 @@
+{header}
+<title>{repo|escape}: revision graph</title>
+<link rel="alternate" type="application/atom+xml"
+   href="{url}atom-log" title="Atom feed for {repo|escape}: log" />
+<link rel="alternate" type="application/rss+xml"
+   href="{url}rss-log" title="RSS feed for {repo|escape}: log" />
+<!--[if IE]><script type="text/javascript" src="{staticurl}excanvas.js"></script><![endif]-->
+</head>
+<body>
+
+<div class="container">
+<div class="menu">
+<div class="logo">
+<a href="http://mercurial.selenic.com/">
+<img src="{staticurl}hglogo.png" alt="mercurial" /></a>
+</div>
+<ul>
+<li><a href="{url}shortlog/{node|short}{sessionvars%urlparameter}">log</a></li>
+<li class="active">graph</li>
+<li><a href="{url}tags{sessionvars%urlparameter}">tags</a></li>
+<li><a href="{url}branches{sessionvars%urlparameter}">branches</a></li>
+</ul>
+<ul>
+<li><a href="{url}rev/{node|short}{sessionvars%urlparameter}">changeset</a></li>
+<li><a href="{url}file/{node|short}{path|urlescape}{sessionvars%urlparameter}">browse</a></li>
+</ul>
+</div>
+
+<div class="main">
+<h2><a href="{url}{sessionvars%urlparameter}">{repo|escape}</a></h2>
+<h3>graph</h3>
+
+<form class="search" action="{url}log">
+{sessionvars%hiddenformentry}
+<p><input name="rev" id="search1" type="text" size="30" /></p>
+<div id="hint">find changesets by author, revision,
+files, or words in the commit message</div>
+</form>
+
+<div class="navigate">
+<a href="{url}graph/{rev}{lessvars%urlparameter}">less</a>
+<a href="{url}graph/{rev}{morevars%urlparameter}">more</a>
+| rev {rev}: {changenav%navgraphentry}
+</div>
+
+<noscript><p>The revision graph only works with JavaScript-enabled browsers.</p></noscript>
+
+<div id="wrapper">
+<ul id="nodebgs"></ul>
+<canvas id="graph" width="224" height="{canvasheight}"></canvas>
+<ul id="graphnodes"></ul>
+</div>
+
+<script type="text/javascript" src="{staticurl}graph.js"></script>
+<script type="text/javascript">
+<!-- hide script content
+
+var data = {jsdata|json};
+var graph = new Graph();
+graph.scale({bg_height});
+
+graph.edge = function(x0, y0, x1, y1, color) {
+       
+       this.setColor(color, 0.0, 0.65);
+       this.ctx.beginPath();
+       this.ctx.moveTo(x0, y0);
+       this.ctx.lineTo(x1, y1);
+       this.ctx.stroke();
+       
+}
+
+var revlink = '<li style="_STYLE"><span class="desc">';
+revlink += '<a href="{url}rev/_NODEID{sessionvars%urlparameter}" title="_NODEID">_DESC</a>';
+revlink += '</span>_TAGS<span class="info">_DATE ago, by _USER</span></li>';
+
+graph.vertex = function(x, y, color, parity, cur) {
+       
+       this.ctx.beginPath();
+       color = this.setColor(color, 0.25, 0.75);
+       this.ctx.arc(x, y, radius, 0, Math.PI * 2, true);
+       this.ctx.fill();
+       
+       var bg = '<li class="bg parity' + parity + '"></li>';
+       var left = (this.columns + 1) * this.bg_height;
+       var nstyle = 'padding-left: ' + left + 'px;';
+       var item = revlink.replace(/_STYLE/, nstyle);
+       item = item.replace(/_PARITY/, 'parity' + parity);
+       item = item.replace(/_NODEID/, cur[0]);
+       item = item.replace(/_NODEID/, cur[0]);
+       item = item.replace(/_DESC/, cur[3]);
+       item = item.replace(/_USER/, cur[4]);
+       item = item.replace(/_DATE/, cur[5]);
+
+       var tagspan = '';
+       if (cur[7].length || (cur[6][0] != 'default' || cur[6][1])) {
+               tagspan = '<span class="logtags">';
+               if (cur[6][1]) {
+                       tagspan += '<span class="branchhead" title="' + cur[6][0] + '">';
+                       tagspan += cur[6][0] + '</span> ';
+               } else if (!cur[6][1] && cur[6][0] != 'default') {
+                       tagspan += '<span class="branchname" title="' + cur[6][0] + '">';
+                       tagspan += cur[6][0] + '</span> ';
+               }
+               if (cur[7].length) {
+                       for (var t in cur[7]) {
+                               var tag = cur[7][t];
+                               tagspan += '<span class="tag">' + tag + '</span> ';
+                       }
+               }
+               tagspan += '</span>';
+       }
+       
+       item = item.replace(/_TAGS/, tagspan);
+       return [bg, item];
+       
+}
+
+graph.render(data);
+
+// stop hiding script -->
+</script>
+
+<div class="navigate">
+<a href="{url}graph/{rev}{lessvars%urlparameter}">less</a>
+<a href="{url}graph/{rev}{morevars%urlparameter}">more</a>
+| rev {rev}: {changenav%navgraphentry}
+</div>
+
+</div>
+</div>
+
+{footer}
diff --git a/sys/lib/python/mercurial/templates/paper/header.tmpl b/sys/lib/python/mercurial/templates/paper/header.tmpl
new file mode 100644 (file)
index 0000000..305bc2f
--- /dev/null
@@ -0,0 +1,6 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US">
+<head>
+<link rel="icon" href="{staticurl}hgicon.png" type="image/png" />
+<meta name="robots" content="index, nofollow" />
+<link rel="stylesheet" href="{staticurl}style-paper.css" type="text/css" />
diff --git a/sys/lib/python/mercurial/templates/paper/index.tmpl b/sys/lib/python/mercurial/templates/paper/index.tmpl
new file mode 100644 (file)
index 0000000..35915b5
--- /dev/null
@@ -0,0 +1,26 @@
+{header}
+<title>Mercurial repositories index</title>
+</head>
+<body>
+
+<div class="container">
+<div class="menu">
+<a href="http://mercurial.selenic.com/">
+<img src="{staticurl}hglogo.png" width=75 height=90 border=0 alt="mercurial" /></a>
+</div>
+<div class="main">
+<h2>Mercurial Repositories</h2>
+
+<table class="bigtable">
+    <tr>
+        <th><a href="?sort={sort_name}">Name</a></th>
+        <th><a href="?sort={sort_description}">Description</a></th>
+        <th><a href="?sort={sort_contact}">Contact</a></th>
+        <th><a href="?sort={sort_lastchange}">Last change</a></th>
+        <th>&nbsp;</th>
+    </tr>
+    {entries%indexentry}
+</table>
+</div>
+</div>
+{footer}
diff --git a/sys/lib/python/mercurial/templates/paper/manifest.tmpl b/sys/lib/python/mercurial/templates/paper/manifest.tmpl
new file mode 100644 (file)
index 0000000..a5e6572
--- /dev/null
@@ -0,0 +1,54 @@
+{header}
+<title>{repo|escape}: {node|short} {path|escape}</title>
+</head>
+<body>
+
+<div class="container">
+<div class="menu">
+<div class="logo">
+<a href="http://mercurial.selenic.com/">
+<img src="{staticurl}hglogo.png" alt="mercurial" /></a>
+</div>
+<ul>
+<li><a href="{url}shortlog/{node|short}{sessionvars%urlparameter}">log</a></li>
+<li><a href="{url}graph/{node|short}{sessionvars%urlparameter}">graph</a></li>
+<li><a href="{url}tags{sessionvars%urlparameter}">tags</a></li>
+<li><a href="{url}branches{sessionvars%urlparameter}">branches</a></li>
+</ul>
+<ul>
+<li><a href="{url}rev/{node|short}{sessionvars%urlparameter}">changeset</a></li>
+<li class="active">browse</li>
+</ul>
+<ul>
+{archives%archiveentry}
+</ul>
+</div>
+
+<div class="main">
+<h2><a href="{url}{sessionvars%urlparameter}">{repo|escape}</a></h2>
+<h3>directory {path|escape} @ {rev}:{node|short} {tags%changelogtag}</h3>
+
+<form class="search" action="{url}log">
+{sessionvars%hiddenformentry}
+<p><input name="rev" id="search1" type="text" size="30" /></p>
+<div id="hint">find changesets by author, revision,
+files, or words in the commit message</div>
+</form>
+
+<table class="bigtable">
+<tr>
+  <th class="name">name</th>
+  <th class="size">size</th>
+  <th class="permissions">permissions</th>
+</tr>
+<tr class="fileline parity{upparity}">
+  <td class="name"><a href="{url}file/{node|short}{up|urlescape}{sessionvars%urlparameter}">[up]</a></td>
+  <td class="size"></td>
+  <td class="permissions">drwxr-xr-x</td>
+</tr>
+{dentries%direntry}
+{fentries%fileentry}
+</table>
+</div>
+</div>
+{footer}
diff --git a/sys/lib/python/mercurial/templates/paper/map b/sys/lib/python/mercurial/templates/paper/map
new file mode 100644 (file)
index 0000000..96b8a82
--- /dev/null
@@ -0,0 +1,191 @@
+default = 'shortlog'
+
+mimetype = 'text/html; charset={encoding}'
+header = header.tmpl
+footer = footer.tmpl
+search = search.tmpl
+
+changelog = shortlog.tmpl
+shortlog = shortlog.tmpl
+shortlogentry = shortlogentry.tmpl
+graph = graph.tmpl
+
+naventry = '<a href="{url}log/{node|short}{sessionvars%urlparameter}">{label|escape}</a> '
+navshortentry = '<a href="{url}shortlog/{node|short}{sessionvars%urlparameter}">{label|escape}</a> '
+navgraphentry = '<a href="{url}graph/{node|short}{sessionvars%urlparameter}">{label|escape}</a> '
+filenaventry = '<a href="{url}log/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{label|escape}</a> '
+filedifflink = '<a href="{url}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{file|escape}</a> '
+filenodelink = '<a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{file|escape}</a> '
+filenolink = '{file|escape} '
+fileellipses = '...'
+changelogentry = shortlogentry.tmpl
+searchentry = shortlogentry.tmpl
+changeset = changeset.tmpl
+manifest = manifest.tmpl
+
+direntry = '
+  <tr class="fileline parity{parity}">
+    <td class="name">
+      <a href="{url}file/{node|short}{path|urlescape}{sessionvars%urlparameter}">
+        <img src="{staticurl}coal-folder.png" alt="dir."/> {basename|escape}/
+      </a>
+      <a href="{url}file/{node|short}{path|urlescape}/{emptydirs|urlescape}{sessionvars%urlparameter}">
+        {emptydirs|escape}
+      </a>
+    </td>
+    <td class="size"></td>
+    <td class="permissions">drwxr-xr-x</td>
+  </tr>'
+
+fileentry = '
+  <tr class="fileline parity{parity}">
+    <td class="filename">
+      <a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">
+        <img src="{staticurl}coal-file.png" alt="file"/> {basename|escape}
+      </a>
+    </td>
+    <td class="size">{size}</td>
+    <td class="permissions">{permissions|permissions}</td>
+  </tr>'
+
+filerevision = filerevision.tmpl
+fileannotate = fileannotate.tmpl
+filediff = filediff.tmpl
+filelog = filelog.tmpl
+fileline = '
+  <div class="parity{parity} source"><a href="#{lineid}" id="{lineid}">{linenumber}</a> {line|escape}</div>'
+filelogentry = filelogentry.tmpl
+
+annotateline = '
+  <tr class="parity{parity}">
+    <td class="annotate">
+      <a href="{url}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}#{targetline}"
+         title="{node|short}: {desc|escape|firstline}">{author|user}@{rev}</a>
+    </td>
+    <td class="source"><a href="#{lineid}" id="{lineid}">{linenumber}</a> {line|escape}</td>
+  </tr>'
+
+diffblock = '<div class="source bottomline parity{parity}"><pre>{lines}</pre></div>'
+difflineplus = '<a href="#{lineid}" id="{lineid}">{linenumber}</a> <span class="plusline">{line|escape}</span>'
+difflineminus = '<a href="#{lineid}" id="{lineid}">{linenumber}</a> <span class="minusline">{line|escape}</span>'
+difflineat = '<a href="#{lineid}" id="{lineid}">{linenumber}</a> <span class="atline">{line|escape}</span>'
+diffline = '<a href="#{lineid}" id="{lineid}">{linenumber}</a> {line|escape}'
+
+changelogparent = '
+  <tr>
+    <th class="parent">parent {rev}:</th>
+    <td class="parent"><a href="{url}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a></td>
+  </tr>'
+
+changesetparent = '<a href="{url}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a> '
+
+filerevparent = '<a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{rename%filerename}{node|short}</a> '
+filerevchild = '<a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{node|short}</a> '
+
+filerename = '{file|escape}@'
+filelogrename = '
+  <tr>
+    <th>base:</th>
+    <td>
+      <a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">
+        {file|escape}@{node|short}
+      </a>
+    </td>
+  </tr>'
+fileannotateparent = '
+  <tr>
+    <td class="metatag">parent:</td>
+    <td>
+      <a href="{url}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">
+        {rename%filerename}{node|short}
+      </a>
+    </td>
+  </tr>'
+changesetchild = ' <a href="{url}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a>'
+changelogchild = '
+  <tr>
+    <th class="child">child</th>
+    <td class="child">
+      <a href="{url}rev/{node|short}{sessionvars%urlparameter}">
+        {node|short}
+      </a>
+    </td>
+  </tr>'
+fileannotatechild = '
+  <tr>
+    <td class="metatag">child:</td>
+    <td>
+      <a href="{url}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">
+        {node|short}
+      </a>
+    </td>
+  </tr>'
+tags = tags.tmpl
+tagentry = '
+  <tr class="tagEntry parity{parity}">
+    <td>
+      <a href="{url}rev/{node|short}{sessionvars%urlparameter}">
+        {tag|escape}
+      </a>
+    </td>
+    <td class="node">
+      {node|short}
+    </td>
+  </tr>'
+branches = branches.tmpl
+branchentry = '
+  <tr class="tagEntry parity{parity}">
+    <td>
+      <a href="{url}shortlog/{node|short}{sessionvars%urlparameter}" class="{status}">
+        {branch|escape}
+      </a>
+    </td>
+    <td class="node">
+      {node|short}
+    </td>
+  </tr>'
+changelogtag = '<span class="tag">{name|escape}</span> '
+changesettag = '<span class="tag">{tag|escape}</span> '
+changelogbranchhead = '<span class="branchhead">{name|escape}</span> '
+changelogbranchname = '<span class="branchname">{name|escape}</span> ' 
+
+filediffparent = '
+  <tr>
+    <th class="parent">parent {rev}:</th>
+    <td class="parent"><a href="{url}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a></td>
+  </tr>'
+filelogparent = '
+  <tr>
+    <th>parent {rev}:</th>
+    <td><a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{node|short}</a></td>
+  </tr>'
+filediffchild = '
+  <tr>
+    <th class="child">child {rev}:</th>
+    <td class="child"><a href="{url}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a>
+  </td>
+  </tr>'
+filelogchild = '
+  <tr>
+    <th>child {rev}:</th>
+    <td><a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{node|short}</a></td>
+  </tr>'
+
+indexentry = '
+  <tr class="parity{parity}">
+    <td><a href="{url}{sessionvars%urlparameter}">{name|escape}</a></td>
+    <td>{description}</td>
+    <td>{contact|obfuscate}</td>
+    <td class="age">{lastchange|age} ago</td>
+    <td class="indexlinks">{archives%indexarchiveentry}</td>
+  </tr>\n'
+indexarchiveentry = '<a href="{url}archive/{node|short}{extension|urlescape}">&nbsp;&darr;{type|escape}</a>'
+index = index.tmpl
+archiveentry = '
+  <li>
+    <a href="{url}archive/{node|short}{extension|urlescape}">{type|escape}</a>
+  </li>'
+notfound = notfound.tmpl
+error = error.tmpl
+urlparameter = '{separator}{name}={value|urlescape}'
+hiddenformentry = '<input type="hidden" name="{name}" value="{value|escape}" />'
diff --git a/sys/lib/python/mercurial/templates/paper/notfound.tmpl b/sys/lib/python/mercurial/templates/paper/notfound.tmpl
new file mode 100644 (file)
index 0000000..e9e6ba4
--- /dev/null
@@ -0,0 +1,12 @@
+{header}
+<title>Mercurial repository not found</title>
+</head>
+<body>
+
+<h2>Mercurial repository not found</h2>
+
+The specified repository "{repo|escape}" is unknown, sorry.
+
+Please go back to the <a href="{url}">main repository list page</a>.
+
+{footer}
diff --git a/sys/lib/python/mercurial/templates/paper/search.tmpl b/sys/lib/python/mercurial/templates/paper/search.tmpl
new file mode 100644 (file)
index 0000000..67b20c8
--- /dev/null
@@ -0,0 +1,43 @@
+{header}
+<title>{repo|escape}: searching for {query|escape}</title>
+</head>
+<body>
+
+<div class="container">
+<div class="menu">
+<div class="logo">
+<a href="http://mercurial.selenic.com/">
+<img src="{staticurl}hglogo.png" width=75 height=90 border=0 alt="mercurial"></a>
+</div>
+<ul>
+<li><a href="{url}shortlog{sessionvars%urlparameter}">log</a></li>
+<li><a href="{url}graph{sessionvars%urlparameter}">graph</a></li>
+<li><a href="{url}tags{sessionvars%urlparameter}">tags</a></li>
+<li><a href="{url}branches{sessionvars%urlparameter}">branches</a></li>
+</ul>
+</div>
+
+<div class="main">
+<h2><a href="{url}{sessionvars%urlparameter}">{repo|escape}</a></h2>
+<h3>searching for '{query|escape}'</h3>
+
+<form class="search" action="{url}log">
+{sessionvars%hiddenformentry}
+<p><input name="rev" id="search1" type="text" size="30"></p>
+<div id="hint">find changesets by author, revision,
+files, or words in the commit message</div>
+</form>
+
+<table class="bigtable">
+ <tr>
+  <th class="age">age</th>
+  <th class="author">author</th>
+  <th class="description">description</th>
+ </tr>
+{entries}
+</table>
+
+</div>
+</div>
+
+{footer}
diff --git a/sys/lib/python/mercurial/templates/paper/shortlog.tmpl b/sys/lib/python/mercurial/templates/paper/shortlog.tmpl
new file mode 100644 (file)
index 0000000..96fc6d9
--- /dev/null
@@ -0,0 +1,57 @@
+{header}
+<title>{repo|escape}: log</title>
+<link rel="alternate" type="application/atom+xml"
+   href="{url}atom-log" title="Atom feed for {repo|escape}" />
+<link rel="alternate" type="application/rss+xml"
+   href="{url}rss-log" title="RSS feed for {repo|escape}" />
+</head>
+<body>
+
+<div class="container">
+<div class="menu">
+<div class="logo">
+<a href="http://mercurial.selenic.com/">
+<img src="{staticurl}hglogo.png" alt="mercurial" /></a>
+</div>
+<ul>
+<li class="active">log</li>
+<li><a href="{url}graph/{node|short}{sessionvars%urlparameter}">graph</a></li>
+<li><a href="{url}tags{sessionvars%urlparameter}">tags</a></li>
+<li><a href="{url}branches{sessionvars%urlparameter}">branches</a></li>
+</ul>
+<ul>
+<li><a href="{url}rev/{node|short}{sessionvars%urlparameter}">changeset</a></li>
+<li><a href="{url}file/{node|short}{path|urlescape}{sessionvars%urlparameter}">browse</a></li>
+</ul>
+<ul>
+{archives%archiveentry}
+</ul>
+</div>
+
+<div class="main">
+<h2><a href="{url}{sessionvars%urlparameter}">{repo|escape}</a></h2>
+<h3>log</h3>
+
+<form class="search" action="{url}log">
+{sessionvars%hiddenformentry}
+<p><input name="rev" id="search1" type="text" size="30" /></p>
+<div id="hint">find changesets by author, revision,
+files, or words in the commit message</div>
+</form>
+
+<div class="navigate">rev {rev}: {changenav%navshortentry}</div>
+
+<table class="bigtable">
+ <tr>
+  <th class="age">age</th>
+  <th class="author">author</th>
+  <th class="description">description</th>
+ </tr>
+{entries%shortlogentry}
+</table>
+
+<div class="navigate">rev {rev}: {changenav%navshortentry}</div>
+</div>
+</div>
+
+{footer}
diff --git a/sys/lib/python/mercurial/templates/paper/shortlogentry.tmpl b/sys/lib/python/mercurial/templates/paper/shortlogentry.tmpl
new file mode 100644 (file)
index 0000000..43e068c
--- /dev/null
@@ -0,0 +1,5 @@
+ <tr class="parity{parity}">
+  <td class="age">{date|age}</td>
+  <td class="author">{author|person}</td>
+  <td class="description"><a href="{url}rev/{node|short}{sessionvars%urlparameter}">{desc|strip|firstline|escape|nonempty}</a>{inbranch%changelogbranchname}{branches%changelogbranchhead}{tags%changelogtag}</td>
+ </tr>
diff --git a/sys/lib/python/mercurial/templates/paper/tags.tmpl b/sys/lib/python/mercurial/templates/paper/tags.tmpl
new file mode 100644 (file)
index 0000000..1566e9f
--- /dev/null
@@ -0,0 +1,45 @@
+{header}
+<title>{repo|escape}: tags</title>
+<link rel="alternate" type="application/atom+xml"
+   href="{url}atom-tags" title="Atom feed for {repo|escape}: tags" />
+<link rel="alternate" type="application/rss+xml"
+   href="{url}rss-tags" title="RSS feed for {repo|escape}: tags" />
+</head>
+<body>
+
+<div class="container">
+<div class="menu">
+<div class="logo">
+<a href="http://mercurial.selenic.com/">
+<img src="{staticurl}hglogo.png" alt="mercurial" /></a>
+</div>
+<ul>
+<li><a href="{url}shortlog{sessionvars%urlparameter}">log</a></li>
+<li><a href="{url}graph{sessionvars%urlparameter}">graph</a></li>
+<li class="active">tags</li>
+<li><a href="{url}branches{sessionvars%urlparameter}">branches</a></li>
+</ul>
+</div>
+
+<div class="main">
+<h2><a href="{url}{sessionvars%urlparameter}">{repo|escape}</a></h2>
+<h3>tags</h3>
+
+<form class="search" action="{url}log">
+{sessionvars%hiddenformentry}
+<p><input name="rev" id="search1" type="text" size="30" /></p>
+<div id="hint">find changesets by author, revision,
+files, or words in the commit message</div>
+</form>
+
+<table class="bigtable">
+<tr>
+ <th>tag</th>
+ <th>node</th>
+</tr>
+{entries%tagentry}
+</table>
+</div>
+</div>
+
+{footer}
diff --git a/sys/lib/python/mercurial/templates/raw/changeset.tmpl b/sys/lib/python/mercurial/templates/raw/changeset.tmpl
new file mode 100644 (file)
index 0000000..b59d99b
--- /dev/null
@@ -0,0 +1,9 @@
+{header}
+# HG changeset patch
+# User {author}
+# Date {date|hgdate}
+# Node ID {node}
+{parent%changesetparent}
+{desc}
+
+{diff}
diff --git a/sys/lib/python/mercurial/templates/raw/error.tmpl b/sys/lib/python/mercurial/templates/raw/error.tmpl
new file mode 100644 (file)
index 0000000..9407c13
--- /dev/null
@@ -0,0 +1,2 @@
+{header}
+error: {error}
diff --git a/sys/lib/python/mercurial/templates/raw/fileannotate.tmpl b/sys/lib/python/mercurial/templates/raw/fileannotate.tmpl
new file mode 100644 (file)
index 0000000..ad1bed6
--- /dev/null
@@ -0,0 +1,5 @@
+{header}
+{annotate%annotateline}
+{footer}
+
+
diff --git a/sys/lib/python/mercurial/templates/raw/filediff.tmpl b/sys/lib/python/mercurial/templates/raw/filediff.tmpl
new file mode 100644 (file)
index 0000000..c4014bc
--- /dev/null
@@ -0,0 +1,5 @@
+{header}
+{diff}
+{footer}
+
+
diff --git a/sys/lib/python/mercurial/templates/raw/index.tmpl b/sys/lib/python/mercurial/templates/raw/index.tmpl
new file mode 100644 (file)
index 0000000..29d7c9e
--- /dev/null
@@ -0,0 +1,2 @@
+{header}
+{entries%indexentry}
diff --git a/sys/lib/python/mercurial/templates/raw/manifest.tmpl b/sys/lib/python/mercurial/templates/raw/manifest.tmpl
new file mode 100644 (file)
index 0000000..8d4a934
--- /dev/null
@@ -0,0 +1,3 @@
+{header}
+{dentries%direntry}{fentries%fileentry}
+{footer}
diff --git a/sys/lib/python/mercurial/templates/raw/map b/sys/lib/python/mercurial/templates/raw/map
new file mode 100644 (file)
index 0000000..2c14d09
--- /dev/null
@@ -0,0 +1,23 @@
+mimetype = 'text/plain; charset={encoding}'
+header = ''
+footer = ''
+changeset = changeset.tmpl
+difflineplus = '{line}'
+difflineminus = '{line}'
+difflineat = '{line}'
+diffline = '{line}'
+changesetparent = '# Parent  {node}'
+changesetchild = '# Child   {node}'
+filenodelink = ''
+fileline = '{line}'
+diffblock = '{lines}'
+filediff = filediff.tmpl
+fileannotate = fileannotate.tmpl
+annotateline = '{author|user}@{rev}: {line}'
+manifest = manifest.tmpl
+direntry = 'drwxr-xr-x {basename}\n'
+fileentry = '{permissions|permissions} {size} {basename}\n'
+index = index.tmpl
+notfound = notfound.tmpl
+error = error.tmpl
+indexentry = '{url}\n'
diff --git a/sys/lib/python/mercurial/templates/raw/notfound.tmpl b/sys/lib/python/mercurial/templates/raw/notfound.tmpl
new file mode 100644 (file)
index 0000000..a7b3251
--- /dev/null
@@ -0,0 +1,2 @@
+{header}
+error: repository {repo} not found
diff --git a/sys/lib/python/mercurial/templates/rss/changelog.tmpl b/sys/lib/python/mercurial/templates/rss/changelog.tmpl
new file mode 100644 (file)
index 0000000..65b96ad
--- /dev/null
@@ -0,0 +1,6 @@
+{header}
+    <title>{repo|escape} Changelog</title>
+    <description>{repo|escape} Changelog</description>
+    {entries%changelogentry}
+  </channel>
+</rss>
\ No newline at end of file
diff --git a/sys/lib/python/mercurial/templates/rss/changelogentry.tmpl b/sys/lib/python/mercurial/templates/rss/changelogentry.tmpl
new file mode 100644 (file)
index 0000000..12fe8e0
--- /dev/null
@@ -0,0 +1,7 @@
+<item>
+    <title>{desc|strip|firstline|strip|escape}</title>
+    <guid isPermaLink="true">{urlbase}{url}rev/{node|short}</guid>
+    <description><![CDATA[{desc|strip|escape|addbreaks|nonempty}]]></description>
+    <author>{author|obfuscate}</author>
+    <pubDate>{date|rfc822date}</pubDate>
+</item>
diff --git a/sys/lib/python/mercurial/templates/rss/error.tmpl b/sys/lib/python/mercurial/templates/rss/error.tmpl
new file mode 100644 (file)
index 0000000..87e6009
--- /dev/null
@@ -0,0 +1,10 @@
+{header}
+    <title>Error</title>
+    <description>Error</description>
+    <item>
+      <title>Error</title>
+      <description>{error|escape}</description>
+      <guid>http://mercurial.selenic.com/#error</guid>
+    </item>
+  </channel>
+</rss>
diff --git a/sys/lib/python/mercurial/templates/rss/filelog.tmpl b/sys/lib/python/mercurial/templates/rss/filelog.tmpl
new file mode 100644 (file)
index 0000000..31f4dc7
--- /dev/null
@@ -0,0 +1,6 @@
+{header}
+    <title>{repo|escape}: {file|escape} history</title>
+    <description>{file|escape} revision history</description>
+    {entries%filelogentry}
+  </channel>
+</rss>
diff --git a/sys/lib/python/mercurial/templates/rss/filelogentry.tmpl b/sys/lib/python/mercurial/templates/rss/filelogentry.tmpl
new file mode 100644 (file)
index 0000000..220dc4a
--- /dev/null
@@ -0,0 +1,7 @@
+<item>
+    <title>{desc|strip|firstline|strip|escape}</title>
+    <link>{urlbase}{url}log{{node|short}}/{file|urlescape}</link>
+    <description><![CDATA[{desc|strip|escape|addbreaks|nonempty}]]></description>
+    <author>{author|obfuscate}</author>
+    <pubDate>{date|rfc822date}</pubDate>
+</item>
diff --git a/sys/lib/python/mercurial/templates/rss/header.tmpl b/sys/lib/python/mercurial/templates/rss/header.tmpl
new file mode 100644 (file)
index 0000000..ed29196
--- /dev/null
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="{encoding}"?>
+<rss version="2.0">
+  <channel>
+    <link>{urlbase}{url}</link>
+    <language>en-us</language>
diff --git a/sys/lib/python/mercurial/templates/rss/map b/sys/lib/python/mercurial/templates/rss/map
new file mode 100644 (file)
index 0000000..2f777b7
--- /dev/null
@@ -0,0 +1,10 @@
+default = 'changelog'
+mimetype = 'text/xml; charset={encoding}'
+header = header.tmpl
+changelog = changelog.tmpl
+changelogentry = changelogentry.tmpl
+filelog = filelog.tmpl
+filelogentry = filelogentry.tmpl
+tags = tags.tmpl
+tagentry = tagentry.tmpl
+error = error.tmpl
diff --git a/sys/lib/python/mercurial/templates/rss/tagentry.tmpl b/sys/lib/python/mercurial/templates/rss/tagentry.tmpl
new file mode 100644 (file)
index 0000000..42fa038
--- /dev/null
@@ -0,0 +1,6 @@
+<item>
+    <title>{tag|escape}</title>
+    <link>{urlbase}{url}rev/{node|short}</link>
+    <description><![CDATA[{tag|strip|escape|addbreaks}]]></description>
+    <pubDate>{date|rfc822date}</pubDate>
+</item>
diff --git a/sys/lib/python/mercurial/templates/rss/tags.tmpl b/sys/lib/python/mercurial/templates/rss/tags.tmpl
new file mode 100644 (file)
index 0000000..93f1e96
--- /dev/null
@@ -0,0 +1,6 @@
+{header}
+    <title>{repo|escape}: tags </title>
+    <description>{repo|escape} tag history</description>
+    {entriesnotip%tagentry}
+  </channel>
+</rss>
diff --git a/sys/lib/python/mercurial/templates/spartan/branches.tmpl b/sys/lib/python/mercurial/templates/spartan/branches.tmpl
new file mode 100644 (file)
index 0000000..8830501
--- /dev/null
@@ -0,0 +1,26 @@
+{header}
+<title>{repo|escape}: branches</title>
+<link rel="alternate" type="application/atom+xml"
+   href="{url}atom-branches" title="Atom feed for {repo|escape}: branches">
+<link rel="alternate" type="application/rss+xml"
+   href="{url}rss-branches" title="RSS feed for {repo|escape}: branches">
+</head>
+<body>
+
+<div class="buttons">
+<a href="{url}log{sessionvars%urlparameter}">changelog</a>
+<a href="{url}shortlog{sessionvars%urlparameter}">shortlog</a>
+<a href="{url}graph{sessionvars%urlparameter}">graph</a>
+<a href="{url}tags{sessionvars%urlparameter}">tags</a>
+<a href="{url}file/{node|short}/{sessionvars%urlparameter}">files</a>
+<a type="application/rss+xml" href="{url}rss-branches">rss</a>
+<a type="application/atom+xml" href="{url}atom-branches">atom</a>
+</div>
+
+<h2>branches:</h2>
+
+<ul id="tagEntries">
+{entries%branchentry}
+</ul>
+
+{footer}
diff --git a/sys/lib/python/mercurial/templates/spartan/changelog.tmpl b/sys/lib/python/mercurial/templates/spartan/changelog.tmpl
new file mode 100644 (file)
index 0000000..710d7b6
--- /dev/null
@@ -0,0 +1,43 @@
+{header}
+<title>{repo|escape}: changelog</title>
+<link rel="alternate" type="application/atom+xml"
+   href="{url}atom-log" title="Atom feed for {repo|escape}">
+<link rel="alternate" type="application/rss+xml"
+   href="{url}rss-log" title="RSS feed for {repo|escape}">
+</head>
+<body>
+
+<div class="buttons">
+<a href="{url}shortlog/{rev}{sessionvars%urlparameter}">shortlog</a>
+<a href="{url}graph{sessionvars%urlparameter}">graph</a>
+<a href="{url}tags{sessionvars%urlparameter}">tags</a>
+<a href="{url}branches{sessionvars%urlparameter}">branches</a>
+<a href="{url}file/{node|short}{sessionvars%urlparameter}">files</a>
+{archives%archiveentry}
+<a type="application/rss+xml" href="{url}rss-log">rss</a>
+<a type="application/atom+xml" href="{url}atom-log" title="Atom feed for {repo|escape}">atom</a>
+</div>
+
+<h2>changelog for {repo|escape}</h2>
+
+<form action="{url}log">
+{sessionvars%hiddenformentry}
+<p>
+<label for="search1">search:</label>
+<input name="rev" id="search1" type="text" size="30">
+navigate: <small class="navigate">{changenav%naventry}</small>
+</p>
+</form>
+
+{entries%changelogentry}
+
+<form action="{url}log">
+{sessionvars%hiddenformentry}
+<p>
+<label for="search2">search:</label>
+<input name="rev" id="search2" type="text" size="30">
+navigate: <small class="navigate">{changenav%naventry}</small>
+</p>
+</form>
+
+{footer}
diff --git a/sys/lib/python/mercurial/templates/spartan/changelogentry.tmpl b/sys/lib/python/mercurial/templates/spartan/changelogentry.tmpl
new file mode 100644 (file)
index 0000000..e4d2c0e
--- /dev/null
@@ -0,0 +1,25 @@
+<table class="logEntry parity{parity}">
+ <tr>
+  <th class="age">{date|age} ago:</th>
+  <th class="firstline">{desc|strip|firstline|escape|nonempty}</th>
+ </tr>
+ <tr>
+  <th class="revision">changeset {rev}:</th>
+  <td class="node"><a href="{url}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a></td>
+ </tr>
+ {parent%changelogparent}
+ {child%changelogchild}
+ {changelogtag}
+ <tr>
+  <th class="author">author:</th>
+  <td class="author">{author|obfuscate}</td>
+ </tr>
+ <tr>
+  <th class="date">date:</th>
+  <td class="date">{date|date}</td>
+ </tr>
+ <tr>
+  <th class="files"><a href="{url}file/{node|short}{sessionvars%urlparameter}">files</a>:</th>
+  <td class="files">{files}</td>
+ </tr>
+</table>
diff --git a/sys/lib/python/mercurial/templates/spartan/changeset.tmpl b/sys/lib/python/mercurial/templates/spartan/changeset.tmpl
new file mode 100644 (file)
index 0000000..4826c08
--- /dev/null
@@ -0,0 +1,51 @@
+{header}
+<title>{repo|escape}: changeset {node|short}</title>
+</head>
+<body>
+
+<div class="buttons">
+<a href="{url}log/{rev}{sessionvars%urlparameter}">changelog</a>
+<a href="{url}shortlog/{rev}{sessionvars%urlparameter}">shortlog</a>
+<a href="{url}graph{sessionvars%urlparameter}">graph</a>
+<a href="{url}tags{sessionvars%urlparameter}">tags</a>
+<a href="{url}branches{sessionvars%urlparameter}">branches</a>
+<a href="{url}file/{node|short}{sessionvars%urlparameter}">files</a>
+<a href="{url}raw-rev/{node|short}">raw</a>
+{archives%archiveentry}
+</div>
+
+<h2>changeset: {desc|strip|escape|firstline|nonempty}</h2>
+
+<table id="changesetEntry">
+<tr>
+ <th class="changeset">changeset {rev}:</th>
+ <td class="changeset"><a href="{url}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a></td>
+</tr>
+{parent%changesetparent}
+{child%changesetchild}
+{changesettag}
+<tr>
+ <th class="author">author:</th>
+ <td class="author">{author|obfuscate}</td>
+</tr>
+<tr>
+ <th class="date">date:</th>
+ <td class="date">{date|date} ({date|age} ago)</td>
+</tr>
+<tr>
+ <th class="files">files:</th>
+ <td class="files">{files}</td>
+</tr>
+<tr>
+ <th class="description">description:</th>
+ <td class="description">{desc|strip|escape|addbreaks|nonempty}</td>
+</tr>
+</table>
+
+<div id="changesetDiff">
+{diff}
+</div>
+
+{footer}
+
+
diff --git a/sys/lib/python/mercurial/templates/spartan/error.tmpl b/sys/lib/python/mercurial/templates/spartan/error.tmpl
new file mode 100644 (file)
index 0000000..fc2c788
--- /dev/null
@@ -0,0 +1,15 @@
+{header}
+<title>Mercurial Error</title>
+</head>
+<body>
+
+<h2>Mercurial Error</h2>
+
+<p>
+An error occurred while processing your request:
+</p>
+<p>
+{error|escape}
+</p>
+
+{footer}
diff --git a/sys/lib/python/mercurial/templates/spartan/fileannotate.tmpl b/sys/lib/python/mercurial/templates/spartan/fileannotate.tmpl
new file mode 100644 (file)
index 0000000..2631fbe
--- /dev/null
@@ -0,0 +1,48 @@
+{header}
+<title>{repo|escape}: {file|escape} annotate</title>
+</head>
+<body>
+
+<div class="buttons">
+<a href="{url}log/{rev}{sessionvars%urlparameter}">changelog</a>
+<a href="{url}shortlog/{rev}{sessionvars%urlparameter}">shortlog</a>
+<a href="{url}graph{sessionvars%urlparameter}">graph</a>
+<a href="{url}tags{sessionvars%urlparameter}">tags</a>
+<a href="{url}branches{sessionvars%urlparameter}">branches</a>
+<a href="{url}rev/{node|short}{sessionvars%urlparameter}">changeset</a>
+<a href="{url}file/{node|short}{path|urlescape}{sessionvars%urlparameter}">files</a>
+<a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">file</a>
+<a href="{url}log/{node|short}/{file|urlescape}{sessionvars%urlparameter}">revisions</a>
+<a href="{url}raw-annotate/{node|short}/{file|urlescape}">raw</a>
+</div>
+
+<h2>Annotate {file|escape}</h2>
+
+<table>
+<tr>
+ <td class="metatag">changeset {rev}:</td>
+ <td><a href="{url}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a></td></tr>
+{parent%fileannotateparent}
+{child%fileannotatechild}
+<tr>
+ <td class="metatag">author:</td>
+ <td>{author|obfuscate}</td></tr>
+<tr>
+ <td class="metatag">date:</td>
+ <td>{date|date} ({date|age} ago)</td>
+</tr>
+<tr>
+ <td class="metatag">permissions:</td>
+ <td>{permissions|permissions}</td>
+</tr>
+<tr>
+  <td class="metatag">description:</td>
+  <td>{desc|strip|escape|addbreaks|nonempty}</td>
+</tr>
+</table>
+
+<table cellspacing="0" cellpadding="0">
+{annotate%annotateline}
+</table>
+
+{footer}
diff --git a/sys/lib/python/mercurial/templates/spartan/filediff.tmpl b/sys/lib/python/mercurial/templates/spartan/filediff.tmpl
new file mode 100644 (file)
index 0000000..2a6b60e
--- /dev/null
@@ -0,0 +1,36 @@
+{header}
+<title>{repo|escape}: {file|escape} diff</title>
+</head>
+<body>
+
+<div class="buttons">
+<a href="{url}log/{rev}{sessionvars%urlparameter}">changelog</a>
+<a href="{url}shortlog/{rev}{sessionvars%urlparameter}">shortlog</a>
+<a href="{url}graph{sessionvars%urlparameter}">graph</a>
+<a href="{url}tags{sessionvars%urlparameter}">tags</a>
+<a href="{url}branches{sessionvars%urlparameter}">branches</a>
+<a href="{url}rev/{node|short}{sessionvars%urlparameter}">changeset</a>
+<a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">file</a>
+<a href="{url}log/{node|short}/{file|urlescape}{sessionvars%urlparameter}">revisions</a>
+<a href="{url}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">annotate</a>
+<a href="{url}raw-diff/{node|short}/{file|urlescape}">raw</a>
+</div>
+
+<h2>{file|escape}</h2>
+
+<table id="filediffEntry">
+<tr>
+ <th class="revision">revision {rev}:</th>
+ <td class="revision"><a href="{url}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a></td>
+</tr>
+{parent%filediffparent}
+{child%filediffchild}
+</table>
+
+<div id="fileDiff">
+{diff}
+</div>
+
+{footer}
+
+
diff --git a/sys/lib/python/mercurial/templates/spartan/filelog.tmpl b/sys/lib/python/mercurial/templates/spartan/filelog.tmpl
new file mode 100644 (file)
index 0000000..0cb4e89
--- /dev/null
@@ -0,0 +1,28 @@
+{header}
+<title>{repo|escape}: {file|escape} history</title>
+<link rel="alternate" type="application/atom+xml"
+   href="{url}atom-log/tip/{file|urlescape}" title="Atom feed for {repo|escape}:{file}">
+<link rel="alternate" type="application/rss+xml"
+   href="{url}rss-log/tip/{file|urlescape}" title="RSS feed for {repo|escape}:{file}">
+</head>
+<body>
+
+<div class="buttons">
+<a href="{url}log{sessionvars%urlparameter}">changelog</a>
+<a href="{url}shortlog{sessionvars%urlparameter}">shortlog</a>
+<a href="{url}graph{sessionvars%urlparameter}">graph</a>
+<a href="{url}tags{sessionvars%urlparameter}">tags</a>
+<a href="{url}branches{sessionvars%urlparameter}">branches</a>
+<a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">file</a>
+<a href="{url}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">annotate</a>
+<a type="application/rss+xml" href="{url}rss-log/tip/{file|urlescape}">rss</a>
+<a type="application/atom+xml" href="{url}atom-log/tip/{file|urlescape}" title="Atom feed for {repo|escape}:{file}">atom</a>
+</div>
+
+<h2>{file|escape} revision history</h2>
+
+<p>navigate: <small class="navigate">{nav%filenaventry}</small></p>
+
+{entries%filelogentry}
+
+{footer}
diff --git a/sys/lib/python/mercurial/templates/spartan/filelogentry.tmpl b/sys/lib/python/mercurial/templates/spartan/filelogentry.tmpl
new file mode 100644 (file)
index 0000000..526016b
--- /dev/null
@@ -0,0 +1,25 @@
+<table class="logEntry parity{parity}">
+ <tr>
+  <th class="age">{date|age} ago:</th>
+  <th class="firstline"><a href="{url}rev/{node|short}{sessionvars%urlparameter}">{desc|strip|firstline|escape|nonempty}</a></th>
+ </tr>
+ <tr>
+  <th class="revision">revision {filerev}:</td>
+  <td class="node">
+   <a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{node|short}</a>
+   <a href="{url}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">(diff)</a>
+   <a href="{url}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">(annotate)</a>
+  </td>
+ </tr>
+ {rename%filelogrename}
+ <tr>
+  <th class="author">author:</th>
+  <td class="author">{author|obfuscate}</td>
+ </tr>
+ <tr>
+  <th class="date">date:</th>
+  <td class="date">{date|date}</td>
+ </tr>
+</table>
+
+
diff --git a/sys/lib/python/mercurial/templates/spartan/filerevision.tmpl b/sys/lib/python/mercurial/templates/spartan/filerevision.tmpl
new file mode 100644 (file)
index 0000000..b13695d
--- /dev/null
@@ -0,0 +1,46 @@
+{header}
+<title>{repo|escape}:{file|escape}</title>
+</head>
+<body>
+
+<div class="buttons">
+<a href="{url}log/{rev}{sessionvars%urlparameter}">changelog</a>
+<a href="{url}shortlog/{rev}{sessionvars%urlparameter}">shortlog</a>
+<a href="{url}graph{sessionvars%urlparameter}">graph</a>
+<a href="{url}tags{sessionvars%urlparameter}">tags</a>
+<a href="{url}branches{sessionvars%urlparameter}">branches</a>
+<a href="{url}rev/{node|short}{sessionvars%urlparameter}">changeset</a>
+<a href="{url}file/{node|short}{path|urlescape}{sessionvars%urlparameter}">files</a>
+<a href="{url}log/{node|short}/{file|urlescape}{sessionvars%urlparameter}">revisions</a>
+<a href="{url}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">annotate</a>
+<a href="{url}raw-file/{node|short}/{file|urlescape}">raw</a>
+</div>
+
+<h2>{file|escape}</h2>
+
+<table>
+<tr>
+ <td class="metatag">changeset {rev}:</td>
+ <td><a href="{url}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a></td></tr>
+{parent%filerevparent}
+{child%filerevchild}
+<tr>
+ <td class="metatag">author:</td>
+ <td>{author|obfuscate}</td></tr>
+<tr>
+ <td class="metatag">date:</td>
+ <td>{date|date} ({date|age} ago)</td></tr>
+<tr>
+ <td class="metatag">permissions:</td>
+ <td>{permissions|permissions}</td></tr>
+<tr>
+  <td class="metatag">description:</td>
+  <td>{desc|strip|escape|addbreaks|nonempty}</td>
+</tr>
+</table>
+
+<pre>
+{text%fileline}
+</pre>
+
+{footer}
diff --git a/sys/lib/python/mercurial/templates/spartan/footer.tmpl b/sys/lib/python/mercurial/templates/spartan/footer.tmpl
new file mode 100644 (file)
index 0000000..afcb2d0
--- /dev/null
@@ -0,0 +1,8 @@
+{motd}
+<div class="logo">
+<a href="http://mercurial.selenic.com/">
+<img src="{staticurl}hglogo.png" width=75 height=90 border=0 alt="mercurial"></a>
+</div>
+
+</body>
+</html>
diff --git a/sys/lib/python/mercurial/templates/spartan/graph.tmpl b/sys/lib/python/mercurial/templates/spartan/graph.tmpl
new file mode 100644 (file)
index 0000000..62c3ea0
--- /dev/null
@@ -0,0 +1,96 @@
+{header}
+<title>{repo|escape}: graph</title>
+<link rel="alternate" type="application/atom+xml"
+   href="{url}atom-tags" title="Atom feed for {repo|escape}: tags">
+<link rel="alternate" type="application/rss+xml"
+   href="{url}rss-tags" title="RSS feed for {repo|escape}: tags">
+<!--[if IE]><script type="text/javascript" src="{staticurl}excanvas.js"></script><![endif]-->
+</head>
+<body>
+
+<div class="buttons">
+<a href="{url}log{sessionvars%urlparameter}">changelog</a>
+<a href="{url}shortlog{sessionvars%urlparameter}">shortlog</a>
+<a href="{url}tags{sessionvars%urlparameter}">tags</a>
+<a href="{url}branches{sessionvars%urlparameter}">branches</a>
+<a href="{url}file/{node|short}/{sessionvars%urlparameter}">files</a>
+</div>
+
+<h2>graph</h2>
+
+<form action="{url}log">
+{sessionvars%hiddenformentry}
+<p>
+<label for="search1">search:</label>
+<input name="rev" id="search1" type="text" size="30">
+navigate: <small class="navigate">{changenav%navgraphentry}</small>
+</p>
+</form>
+
+<noscript>The revision graph only works with JavaScript-enabled browsers.</noscript>
+
+<div id="wrapper">
+<ul id="nodebgs"></ul>
+<canvas id="graph" width="224" height="{canvasheight}"></canvas>
+<ul id="graphnodes"></ul>
+</div>
+
+<script type="text/javascript" src="{staticurl}graph.js"></script>
+<script type="text/javascript">
+<!-- hide script content
+
+var data = {jsdata|json};
+var graph = new Graph();
+graph.scale({bg_height});
+
+graph.edge = function(x0, y0, x1, y1, color) {
+       
+       this.setColor(color, 0.0, 0.65);
+       this.ctx.beginPath();
+       this.ctx.moveTo(x0, y0);
+       this.ctx.lineTo(x1, y1);
+       this.ctx.stroke();
+       
+}
+
+var revlink = '<li style="_STYLE"><span class="desc">';
+revlink += '<a href="{url}rev/_NODEID{sessionvars%urlparameter}" title="_NODEID">_DESC</a>';
+revlink += '</span><span class="info">_DATE ago, by _USER</span></li>';
+
+graph.vertex = function(x, y, color, parity, cur) {
+       
+       this.ctx.beginPath();
+       color = this.setColor(color, 0.25, 0.75);
+       this.ctx.arc(x, y, radius, 0, Math.PI * 2, true);
+       this.ctx.fill();
+       
+       var bg = '<li class="bg parity' + parity + '"></li>';
+       var left = (this.columns + 1) * this.bg_height;
+       var nstyle = 'padding-left: ' + left + 'px;';
+       var item = revlink.replace(/_STYLE/, nstyle);
+       item = item.replace(/_PARITY/, 'parity' + parity);
+       item = item.replace(/_NODEID/, cur[0]);
+       item = item.replace(/_NODEID/, cur[0]);
+       item = item.replace(/_DESC/, cur[3]);
+       item = item.replace(/_USER/, cur[4]);
+       item = item.replace(/_DATE/, cur[5]);
+       
+       return [bg, item];
+       
+}
+
+graph.render(data);
+
+// stop hiding script -->
+</script>
+
+<form action="{url}log">
+{sessionvars%hiddenformentry}
+<p>
+<label for="search1">search:</label>
+<input name="rev" id="search1" type="text" size="30">
+navigate: <small class="navigate">{changenav%navgraphentry}</small>
+</p>
+</form>
+
+{footer}
diff --git a/sys/lib/python/mercurial/templates/spartan/header.tmpl b/sys/lib/python/mercurial/templates/spartan/header.tmpl
new file mode 100644 (file)
index 0000000..646b2fe
--- /dev/null
@@ -0,0 +1,6 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<link rel="icon" href="{staticurl}hgicon.png" type="image/png">
+<meta name="robots" content="index, nofollow" />
+<link rel="stylesheet" href="{staticurl}style.css" type="text/css" />
diff --git a/sys/lib/python/mercurial/templates/spartan/index.tmpl b/sys/lib/python/mercurial/templates/spartan/index.tmpl
new file mode 100644 (file)
index 0000000..bf8d4de
--- /dev/null
@@ -0,0 +1,19 @@
+{header}
+<title>Mercurial repositories index</title>
+</head>
+<body>
+
+<h2>Mercurial Repositories</h2>
+
+<table>
+    <tr>
+        <td><a href="?sort={sort_name}">Name</a></td>
+        <td><a href="?sort={sort_description}">Description</a></td>
+        <td><a href="?sort={sort_contact}">Contact</a></td>
+        <td><a href="?sort={sort_lastchange}">Last change</a></td>
+        <td>&nbsp;</td>
+    </tr>
+    {entries%indexentry}
+</table>
+
+{footer}
diff --git a/sys/lib/python/mercurial/templates/spartan/manifest.tmpl b/sys/lib/python/mercurial/templates/spartan/manifest.tmpl
new file mode 100644 (file)
index 0000000..5b2e881
--- /dev/null
@@ -0,0 +1,28 @@
+{header}
+<title>{repo|escape}: files for changeset {node|short}</title>
+</head>
+<body>
+
+<div class="buttons">
+<a href="{url}log/{rev}{sessionvars%urlparameter}">changelog</a>
+<a href="{url}shortlog/{rev}{sessionvars%urlparameter}">shortlog</a>
+<a href="{url}graph{sessionvars%urlparameter}">graph</a>
+<a href="{url}tags{sessionvars%urlparameter}">tags</a>
+<a href="{url}branches{sessionvars%urlparameter}">branches</a>
+<a href="{url}rev/{node|short}{sessionvars%urlparameter}">changeset</a>
+{archives%archiveentry}
+</div>
+
+<h2>files for changeset {node|short}: {path|escape}</h2>
+
+<table cellpadding="0" cellspacing="0">
+<tr class="parity{upparity}">
+  <td><tt>drwxr-xr-x</tt>&nbsp;
+  <td>&nbsp;
+  <td>&nbsp;
+  <td><a href="{url}file/{node|short}{up|urlescape}{sessionvars%urlparameter}">[up]</a>
+</tr>
+{dentries%direntry}
+{fentries%fileentry}
+</table>
+{footer}
diff --git a/sys/lib/python/mercurial/templates/spartan/map b/sys/lib/python/mercurial/templates/spartan/map
new file mode 100644 (file)
index 0000000..4432972
--- /dev/null
@@ -0,0 +1,178 @@
+default = 'shortlog'
+mimetype = 'text/html; charset={encoding}'
+header = header.tmpl
+footer = footer.tmpl
+search = search.tmpl
+changelog = changelog.tmpl
+shortlog = shortlog.tmpl
+shortlogentry = shortlogentry.tmpl
+graph = graph.tmpl
+naventry = '<a href="{url}log/{node|short}{sessionvars%urlparameter}">{label|escape}</a> '
+navshortentry = '<a href="{url}shortlog/{node|short}{sessionvars%urlparameter}">{label|escape}</a> '
+navgraphentry = '<a href="{url}graph/{node|short}{sessionvars%urlparameter}">{label|escape}</a> '
+filenaventry = '<a href="{url}log/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{label|escape}</a> '
+filedifflink = '<a href="{url}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{file|escape}</a> '
+filenodelink = '<a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{file|escape}</a> '
+filenolink = '{file|escape} '
+fileellipses = '...'
+changelogentry = changelogentry.tmpl
+searchentry = changelogentry.tmpl
+changeset = changeset.tmpl
+manifest = manifest.tmpl
+
+direntry = '
+  <tr class="parity{parity}">
+    <td><tt>drwxr-xr-x</tt>&nbsp;
+    <td>&nbsp;
+    <td>&nbsp;
+    <td>
+      <a href="{url}file/{node|short}{path|urlescape}{sessionvars%urlparameter}">{basename|escape}/</a>
+      <a href="{url}file/{node|short}{path|urlescape}/{emptydirs|urlescape}{sessionvars%urlparameter}">
+        {emptydirs|urlescape}
+      </a>'
+
+fileentry = '
+  <tr class="parity{parity}">
+    <td><tt>{permissions|permissions}</tt>&nbsp;
+    <td align=right><tt class="date">{date|isodate}</tt>&nbsp;
+    <td align=right><tt>{size}</tt>&nbsp;
+    <td><a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{basename|escape}</a>'
+
+filerevision = filerevision.tmpl
+fileannotate = fileannotate.tmpl
+filediff = filediff.tmpl
+filelog = filelog.tmpl
+fileline = '<div class="parity{parity}"><a class="lineno" href="#{lineid}" id="{lineid}">{linenumber}</a>&nbsp;{line|escape}</div>'
+filelogentry = filelogentry.tmpl
+
+# The &nbsp; ensures that all table cells have content (even if there
+# is an empty line in the annotated file), which in turn ensures that
+# all table rows have equal height.
+annotateline = '
+  <tr class="parity{parity}">
+    <td class="annotate">
+      <a href="{url}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}#l{targetline}"
+         title="{node|short}: {desc|escape|firstline}">{author|user}@{rev}</a>
+    </td>
+    <td>
+      <a class="lineno" href="#{lineid}" id="{lineid}">{linenumber}</a>
+    </td>
+    <td><pre>&nbsp;{line|escape}</pre></td>
+  </tr>'
+difflineplus = '<span class="plusline"><a class="lineno" href="#{lineid}" id="{lineid}">{linenumber}</a>{line|escape}</span>'
+difflineminus = '<span class="minusline"><a class="lineno" href="#{lineid}" id="{lineid}">{linenumber}</a>{line|escape}</span>'
+difflineat = '<span class="atline"><a class="lineno" href="#{lineid}" id="{lineid}">{linenumber}</a>{line|escape}</span>'
+diffline = '<a class="lineno" href="#{lineid}" id="{lineid}">{linenumber}</a>{line|escape}'
+changelogparent = '
+  <tr>
+    <th class="parent">parent {rev}:</th>
+    <td class="parent">
+      <a href="{url}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a>
+    </td>
+  </tr>'
+changesetparent = '
+  <tr>
+    <th class="parent">parent {rev}:</th>
+    <td class="parent"><a href="{url}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a></td>
+  </tr>'
+filerevparent = '
+  <tr>
+    <td class="metatag">parent:</td>
+    <td>
+      <a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">
+        {rename%filerename}{node|short}
+      </a>
+    </td>
+  </tr>'
+filerename = '{file|escape}@'
+filelogrename = '
+  <tr>
+    <th>base:</th>
+    <td>
+      <a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">
+        {file|escape}@{node|short}
+      </a>
+    </td>
+  </tr>'
+fileannotateparent = '
+  <tr>
+    <td class="metatag">parent:</td>
+    <td>
+      <a href="{url}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">
+        {rename%filerename}{node|short}
+      </a>
+    </td>
+  </tr>'
+changesetchild = '
+  <tr>
+    <th class="child">child {rev}:</th>
+    <td class="child"><a href="{url}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a></td>
+  </tr>'
+changelogchild = '
+  <tr>
+    <th class="child">child {rev}:</th>
+    <td class="child"><a href="{url}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a></td>
+  </tr>'
+filerevchild = '
+  <tr>
+    <td class="metatag">child:</td>
+    <td><a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{node|short}</a></td>
+  </tr>'
+fileannotatechild = '
+  <tr>
+    <td class="metatag">child:</td>
+    <td><a href="{url}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{node|short}</a></td>
+  </tr>'
+tags = tags.tmpl
+tagentry = '
+  <li class="tagEntry parity{parity}">
+    <tt class="node">{node}</tt>
+    <a href="{url}rev/{node|short}{sessionvars%urlparameter}">{tag|escape}</a>
+  </li>'
+branches = branches.tmpl
+branchentry = '
+  <li class="tagEntry parity{parity}">
+    <tt class="node">{node}</tt>
+    <a href="{url}shortlog/{node|short}{sessionvars%urlparameter}" class="{status}">{branch|escape}</a>
+  </li>'
+diffblock = '<pre class="parity{parity}">{lines}</pre>'
+changelogtag = '<tr><th class="tag">tag:</th><td class="tag">{tag|escape}</td></tr>'
+changesettag = '<tr><th class="tag">tag:</th><td class="tag">{tag|escape}</td></tr>'
+filediffparent = '
+  <tr>
+    <th class="parent">parent {rev}:</th>
+    <td class="parent"><a href="{url}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a></td>
+  </tr>'
+filelogparent = '
+  <tr>
+    <th>parent {rev}:</th>
+    <td><a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{node|short}</a></td>
+  </tr>'
+filediffchild = '
+  <tr>
+    <th class="child">child {rev}:</th>
+    <td class="child"><a href="{url}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a></td>
+  </tr>'
+filelogchild = '
+  <tr>
+    <th>child {rev}:</th>
+    <td><a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{node|short}</a></td>
+  </tr>'
+indexentry = '
+  <tr class="parity{parity}">
+    <td><a href="{url}{sessionvars%urlparameter}">{name|escape}</a></td>
+    <td>{description}</td>
+    <td>{contact|obfuscate}</td>
+    <td class="age">{lastchange|age} ago</td>
+    <td class="indexlinks">
+      <a href="{url}rss-log">RSS</a>
+      <a href="{url}atom-log">Atom</a>
+      {archives%archiveentry}
+    </td>
+  </tr>'
+index = index.tmpl
+archiveentry = '<a href="{url}archive/{node|short}{extension|urlescape}">{type|escape}</a> '
+notfound = notfound.tmpl
+error = error.tmpl
+urlparameter = '{separator}{name}={value|urlescape}'
+hiddenformentry = '<input type="hidden" name="{name}" value="{value|escape}" />'
diff --git a/sys/lib/python/mercurial/templates/spartan/notfound.tmpl b/sys/lib/python/mercurial/templates/spartan/notfound.tmpl
new file mode 100644 (file)
index 0000000..e9e6ba4
--- /dev/null
@@ -0,0 +1,12 @@
+{header}
+<title>Mercurial repository not found</title>
+</head>
+<body>
+
+<h2>Mercurial repository not found</h2>
+
+The specified repository "{repo|escape}" is unknown, sorry.
+
+Please go back to the <a href="{url}">main repository list page</a>.
+
+{footer}
diff --git a/sys/lib/python/mercurial/templates/spartan/search.tmpl b/sys/lib/python/mercurial/templates/spartan/search.tmpl
new file mode 100644 (file)
index 0000000..4987a59
--- /dev/null
@@ -0,0 +1,36 @@
+{header}
+<title>{repo|escape}: searching for {query|escape}</title>
+</head>
+<body>
+
+<div class="buttons">
+<a href="{url}log{sessionvars%urlparameter}">changelog</a>
+<a href="{url}shortlog{sessionvars%urlparameter}">shortlog</a>
+<a href="{url}graph{sessionvars%urlparameter}">graph</a>
+<a href="{url}tags{sessionvars%urlparameter}">tags</a>
+<a href="{url}branches{sessionvars%urlparameter}">branches</a>
+<a href="{url}file/{node|short}{sessionvars%urlparameter}">files</a>
+{archives%archiveentry}
+</div>
+
+<h2>searching for {query|escape}</h2>
+
+<form>
+{sessionvars%hiddenformentry}
+<p>
+search:
+<input name="rev" type="text" width="30" value="{query|escape}">
+</p>
+</form>
+
+{entries}
+
+<form>
+{sessionvars%hiddenformentry}
+<p>
+search:
+<input name="rev" type="text" width="30" value="{query|escape}">
+</p>
+</form>
+
+{footer}
diff --git a/sys/lib/python/mercurial/templates/spartan/shortlog.tmpl b/sys/lib/python/mercurial/templates/spartan/shortlog.tmpl
new file mode 100644 (file)
index 0000000..1560c63
--- /dev/null
@@ -0,0 +1,43 @@
+{header}
+<title>{repo|escape}: shortlog</title>
+<link rel="alternate" type="application/atom+xml"
+   href="{url}atom-log" title="Atom feed for {repo|escape}">
+<link rel="alternate" type="application/rss+xml"
+   href="{url}rss-log" title="RSS feed for {repo|escape}">
+</head>
+<body>
+
+<div class="buttons">
+<a href="{url}log/{rev}{sessionvars%urlparameter}">changelog</a>
+<a href="{url}graph{sessionvars%urlparameter}">graph</a>
+<a href="{url}tags{sessionvars%urlparameter}">tags</a>
+<a href="{url}branches{sessionvars%urlparameter}">branches</a>
+<a href="{url}file/{node|short}/{sessionvars%urlparameter}">files</a>
+{archives%archiveentry}
+<a type="application/rss+xml" href="{url}rss-log">rss</a>
+<a type="application/rss+xml" href="{url}atom-log" title="Atom feed for {repo|escape}">atom</a>
+</div>
+
+<h2>shortlog for {repo|escape}</h2>
+
+<form action="{url}log">
+{sessionvars%hiddenformentry}
+<p>
+<label for="search1">search:</label>
+<input name="rev" id="search1" type="text" size="30">
+navigate: <small class="navigate">{changenav%navshortentry}</small>
+</p>
+</form>
+
+{entries%shortlogentry}
+
+<form action="{url}log">
+{sessionvars%hiddenformentry}
+<p>
+<label for="search2">search:</label>
+<input name="rev" id="search2" type="text" size="30">
+navigate: <small class="navigate">{changenav%navshortentry}</small>
+</p>
+</form>
+
+{footer}
diff --git a/sys/lib/python/mercurial/templates/spartan/shortlogentry.tmpl b/sys/lib/python/mercurial/templates/spartan/shortlogentry.tmpl
new file mode 100644 (file)
index 0000000..b6857db
--- /dev/null
@@ -0,0 +1,7 @@
+<table class="slogEntry parity{parity}">
+ <tr>
+  <td class="age">{date|age}</td>
+  <td class="author">{author|person}</td>
+  <td class="node"><a href="{url}rev/{node|short}{sessionvars%urlparameter}">{desc|strip|firstline|escape|nonempty}</a></td>
+ </tr>
+</table>
diff --git a/sys/lib/python/mercurial/templates/spartan/tags.tmpl b/sys/lib/python/mercurial/templates/spartan/tags.tmpl
new file mode 100644 (file)
index 0000000..029452d
--- /dev/null
@@ -0,0 +1,26 @@
+{header}
+<title>{repo|escape}: tags</title>
+<link rel="alternate" type="application/atom+xml"
+   href="{url}atom-tags" title="Atom feed for {repo|escape}: tags">
+<link rel="alternate" type="application/rss+xml"
+   href="{url}rss-tags" title="RSS feed for {repo|escape}: tags">
+</head>
+<body>
+
+<div class="buttons">
+<a href="{url}log{sessionvars%urlparameter}">changelog</a>
+<a href="{url}shortlog{sessionvars%urlparameter}">shortlog</a>
+<a href="{url}graph{sessionvars%urlparameter}">graph</a>
+<a href="{url}branches{sessionvars%urlparameter}">branches</a>
+<a href="{url}file/{node|short}/{sessionvars%urlparameter}">files</a>
+<a type="application/rss+xml" href="{url}rss-tags">rss</a>
+<a type="application/atom+xml" href="{url}atom-tags">atom</a>
+</div>
+
+<h2>tags:</h2>
+
+<ul id="tagEntries">
+{entries%tagentry}
+</ul>
+
+{footer}
diff --git a/sys/lib/python/mercurial/templates/static/background.png b/sys/lib/python/mercurial/templates/static/background.png
new file mode 100644 (file)
index 0000000..af8a0aa
Binary files /dev/null and b/sys/lib/python/mercurial/templates/static/background.png differ
diff --git a/sys/lib/python/mercurial/templates/static/coal-file.png b/sys/lib/python/mercurial/templates/static/coal-file.png
new file mode 100644 (file)
index 0000000..7ecf463
Binary files /dev/null and b/sys/lib/python/mercurial/templates/static/coal-file.png differ
diff --git a/sys/lib/python/mercurial/templates/static/coal-folder.png b/sys/lib/python/mercurial/templates/static/coal-folder.png
new file mode 100644 (file)
index 0000000..d1b8ecc
Binary files /dev/null and b/sys/lib/python/mercurial/templates/static/coal-folder.png differ
diff --git a/sys/lib/python/mercurial/templates/static/excanvas.js b/sys/lib/python/mercurial/templates/static/excanvas.js
new file mode 100644 (file)
index 0000000..9d71658
--- /dev/null
@@ -0,0 +1,19 @@
+if(!window.CanvasRenderingContext2D){(function(){var I=Math,i=I.round,L=I.sin,M=I.cos,m=10,A=m/2,Q={init:function(a){var b=a||document;if(/MSIE/.test(navigator.userAgent)&&!window.opera){var c=this;b.attachEvent("onreadystatechange",function(){c.r(b)})}},r:function(a){if(a.readyState=="complete"){if(!a.namespaces["s"]){a.namespaces.add("g_vml_","urn:schemas-microsoft-com:vml")}var b=a.createStyleSheet();b.cssText="canvas{display:inline-block;overflow:hidden;text-align:left;width:300px;height:150px}g_vml_\\:*{behavior:url(#default#VML)}";
+var c=a.getElementsByTagName("canvas");for(var d=0;d<c.length;d++){if(!c[d].getContext){this.initElement(c[d])}}}},q:function(a){var b=a.outerHTML,c=a.ownerDocument.createElement(b);if(b.slice(-2)!="/>"){var d="/"+a.tagName,e;while((e=a.nextSibling)&&e.tagName!=d){e.removeNode()}if(e){e.removeNode()}}a.parentNode.replaceChild(c,a);return c},initElement:function(a){a=this.q(a);a.getContext=function(){if(this.l){return this.l}return this.l=new K(this)};a.attachEvent("onpropertychange",V);a.attachEvent("onresize",
+W);var b=a.attributes;if(b.width&&b.width.specified){a.style.width=b.width.nodeValue+"px"}else{a.width=a.clientWidth}if(b.height&&b.height.specified){a.style.height=b.height.nodeValue+"px"}else{a.height=a.clientHeight}return a}};function V(a){var b=a.srcElement;switch(a.propertyName){case "width":b.style.width=b.attributes.width.nodeValue+"px";b.getContext().clearRect();break;case "height":b.style.height=b.attributes.height.nodeValue+"px";b.getContext().clearRect();break}}function W(a){var b=a.srcElement;
+if(b.firstChild){b.firstChild.style.width=b.clientWidth+"px";b.firstChild.style.height=b.clientHeight+"px"}}Q.init();var R=[];for(var E=0;E<16;E++){for(var F=0;F<16;F++){R[E*16+F]=E.toString(16)+F.toString(16)}}function J(){return[[1,0,0],[0,1,0],[0,0,1]]}function G(a,b){var c=J();for(var d=0;d<3;d++){for(var e=0;e<3;e++){var g=0;for(var h=0;h<3;h++){g+=a[d][h]*b[h][e]}c[d][e]=g}}return c}function N(a,b){b.fillStyle=a.fillStyle;b.lineCap=a.lineCap;b.lineJoin=a.lineJoin;b.lineWidth=a.lineWidth;b.miterLimit=
+a.miterLimit;b.shadowBlur=a.shadowBlur;b.shadowColor=a.shadowColor;b.shadowOffsetX=a.shadowOffsetX;b.shadowOffsetY=a.shadowOffsetY;b.strokeStyle=a.strokeStyle;b.d=a.d;b.e=a.e}function O(a){var b,c=1;a=String(a);if(a.substring(0,3)=="rgb"){var d=a.indexOf("(",3),e=a.indexOf(")",d+1),g=a.substring(d+1,e).split(",");b="#";for(var h=0;h<3;h++){b+=R[Number(g[h])]}if(g.length==4&&a.substr(3,1)=="a"){c=g[3]}}else{b=a}return[b,c]}function S(a){switch(a){case "butt":return"flat";case "round":return"round";
+case "square":default:return"square"}}function K(a){this.a=J();this.m=[];this.k=[];this.c=[];this.strokeStyle="#000";this.fillStyle="#000";this.lineWidth=1;this.lineJoin="miter";this.lineCap="butt";this.miterLimit=m*1;this.globalAlpha=1;this.canvas=a;var b=a.ownerDocument.createElement("div");b.style.width=a.clientWidth+"px";b.style.height=a.clientHeight+"px";b.style.overflow="hidden";b.style.position="absolute";a.appendChild(b);this.j=b;this.d=1;this.e=1}var j=K.prototype;j.clearRect=function(){this.j.innerHTML=
+"";this.c=[]};j.beginPath=function(){this.c=[]};j.moveTo=function(a,b){this.c.push({type:"moveTo",x:a,y:b});this.f=a;this.g=b};j.lineTo=function(a,b){this.c.push({type:"lineTo",x:a,y:b});this.f=a;this.g=b};j.bezierCurveTo=function(a,b,c,d,e,g){this.c.push({type:"bezierCurveTo",cp1x:a,cp1y:b,cp2x:c,cp2y:d,x:e,y:g});this.f=e;this.g=g};j.quadraticCurveTo=function(a,b,c,d){var e=this.f+0.6666666666666666*(a-this.f),g=this.g+0.6666666666666666*(b-this.g),h=e+(c-this.f)/3,l=g+(d-this.g)/3;this.bezierCurveTo(e,
+g,h,l,c,d)};j.arc=function(a,b,c,d,e,g){c*=m;var h=g?"at":"wa",l=a+M(d)*c-A,n=b+L(d)*c-A,o=a+M(e)*c-A,f=b+L(e)*c-A;if(l==o&&!g){l+=0.125}this.c.push({type:h,x:a,y:b,radius:c,xStart:l,yStart:n,xEnd:o,yEnd:f})};j.rect=function(a,b,c,d){this.moveTo(a,b);this.lineTo(a+c,b);this.lineTo(a+c,b+d);this.lineTo(a,b+d);this.closePath()};j.strokeRect=function(a,b,c,d){this.beginPath();this.moveTo(a,b);this.lineTo(a+c,b);this.lineTo(a+c,b+d);this.lineTo(a,b+d);this.closePath();this.stroke()};j.fillRect=function(a,
+b,c,d){this.beginPath();this.moveTo(a,b);this.lineTo(a+c,b);this.lineTo(a+c,b+d);this.lineTo(a,b+d);this.closePath();this.fill()};j.createLinearGradient=function(a,b,c,d){var e=new H("gradient");return e};j.createRadialGradient=function(a,b,c,d,e,g){var h=new H("gradientradial");h.n=c;h.o=g;h.i.x=a;h.i.y=b;return h};j.drawImage=function(a,b){var c,d,e,g,h,l,n,o,f=a.runtimeStyle.width,k=a.runtimeStyle.height;a.runtimeStyle.width="auto";a.runtimeStyle.height="auto";var q=a.width,r=a.height;a.runtimeStyle.width=
+f;a.runtimeStyle.height=k;if(arguments.length==3){c=arguments[1];d=arguments[2];h=(l=0);n=(e=q);o=(g=r)}else if(arguments.length==5){c=arguments[1];d=arguments[2];e=arguments[3];g=arguments[4];h=(l=0);n=q;o=r}else if(arguments.length==9){h=arguments[1];l=arguments[2];n=arguments[3];o=arguments[4];c=arguments[5];d=arguments[6];e=arguments[7];g=arguments[8]}else{throw"Invalid number of arguments";}var s=this.b(c,d),t=[],v=10,w=10;t.push(" <g_vml_:group",' coordsize="',m*v,",",m*w,'"',' coordorigin="0,0"',
+' style="width:',v,";height:",w,";position:absolute;");if(this.a[0][0]!=1||this.a[0][1]){var x=[];x.push("M11='",this.a[0][0],"',","M12='",this.a[1][0],"',","M21='",this.a[0][1],"',","M22='",this.a[1][1],"',","Dx='",i(s.x/m),"',","Dy='",i(s.y/m),"'");var p=s,y=this.b(c+e,d),z=this.b(c,d+g),B=this.b(c+e,d+g);p.x=Math.max(p.x,y.x,z.x,B.x);p.y=Math.max(p.y,y.y,z.y,B.y);t.push("padding:0 ",i(p.x/m),"px ",i(p.y/m),"px 0;filter:progid:DXImageTransform.Microsoft.Matrix(",x.join(""),", sizingmethod='clip');")}else{t.push("top:",
+i(s.y/m),"px;left:",i(s.x/m),"px;")}t.push(' ">','<g_vml_:image src="',a.src,'"',' style="width:',m*e,";"," height:",m*g,';"',' cropleft="',h/q,'"',' croptop="',l/r,'"',' cropright="',(q-h-n)/q,'"',' cropbottom="',(r-l-o)/r,'"'," />","</g_vml_:group>");this.j.insertAdjacentHTML("BeforeEnd",t.join(""))};j.stroke=function(a){var b=[],c=O(a?this.fillStyle:this.strokeStyle),d=c[0],e=c[1]*this.globalAlpha,g=10,h=10;b.push("<g_vml_:shape",' fillcolor="',d,'"',' filled="',Boolean(a),'"',' style="position:absolute;width:',
+g,";height:",h,';"',' coordorigin="0 0" coordsize="',m*g," ",m*h,'"',' stroked="',!a,'"',' strokeweight="',this.lineWidth,'"',' strokecolor="',d,'"',' path="');var l={x:null,y:null},n={x:null,y:null};for(var o=0;o<this.c.length;o++){var f=this.c[o];if(f.type=="moveTo"){b.push(" m ");var k=this.b(f.x,f.y);b.push(i(k.x),",",i(k.y))}else if(f.type=="lineTo"){b.push(" l ");var k=this.b(f.x,f.y);b.push(i(k.x),",",i(k.y))}else if(f.type=="close"){b.push(" x ")}else if(f.type=="bezierCurveTo"){b.push(" c ");
+var k=this.b(f.x,f.y),q=this.b(f.cp1x,f.cp1y),r=this.b(f.cp2x,f.cp2y);b.push(i(q.x),",",i(q.y),",",i(r.x),",",i(r.y),",",i(k.x),",",i(k.y))}else if(f.type=="at"||f.type=="wa"){b.push(" ",f.type," ");var k=this.b(f.x,f.y),s=this.b(f.xStart,f.yStart),t=this.b(f.xEnd,f.yEnd);b.push(i(k.x-this.d*f.radius),",",i(k.y-this.e*f.radius)," ",i(k.x+this.d*f.radius),",",i(k.y+this.e*f.radius)," ",i(s.x),",",i(s.y)," ",i(t.x),",",i(t.y))}if(k){if(l.x==null||k.x<l.x){l.x=k.x}if(n.x==null||k.x>n.x){n.x=k.x}if(l.y==
+null||k.y<l.y){l.y=k.y}if(n.y==null||k.y>n.y){n.y=k.y}}}b.push(' ">');if(typeof this.fillStyle=="object"){var v={x:"50%",y:"50%"},w=n.x-l.x,x=n.y-l.y,p=w>x?w:x;v.x=i(this.fillStyle.i.x/w*100+50)+"%";v.y=i(this.fillStyle.i.y/x*100+50)+"%";var y=[];if(this.fillStyle.p=="gradientradial"){var z=this.fillStyle.n/p*100,B=this.fillStyle.o/p*100-z}else{var z=0,B=100}var C={offset:null,color:null},D={offset:null,color:null};this.fillStyle.h.sort(function(T,U){return T.offset-U.offset});for(var o=0;o<this.fillStyle.h.length;o++){var u=
+this.fillStyle.h[o];y.push(u.offset*B+z,"% ",u.color,",");if(u.offset>C.offset||C.offset==null){C.offset=u.offset;C.color=u.color}if(u.offset<D.offset||D.offset==null){D.offset=u.offset;D.color=u.color}}y.pop();b.push("<g_vml_:fill",' color="',D.color,'"',' color2="',C.color,'"',' type="',this.fillStyle.p,'"',' focusposition="',v.x,", ",v.y,'"',' colors="',y.join(""),'"',' opacity="',e,'" />')}else if(a){b.push('<g_vml_:fill color="',d,'" opacity="',e,'" />')}else{b.push("<g_vml_:stroke",' opacity="',
+e,'"',' joinstyle="',this.lineJoin,'"',' miterlimit="',this.miterLimit,'"',' endcap="',S(this.lineCap),'"',' weight="',this.lineWidth,'px"',' color="',d,'" />')}b.push("</g_vml_:shape>");this.j.insertAdjacentHTML("beforeEnd",b.join(""));this.c=[]};j.fill=function(){this.stroke(true)};j.closePath=function(){this.c.push({type:"close"})};j.b=function(a,b){return{x:m*(a*this.a[0][0]+b*this.a[1][0]+this.a[2][0])-A,y:m*(a*this.a[0][1]+b*this.a[1][1]+this.a[2][1])-A}};j.save=function(){var a={};N(this,a);
+this.k.push(a);this.m.push(this.a);this.a=G(J(),this.a)};j.restore=function(){N(this.k.pop(),this);this.a=this.m.pop()};j.translate=function(a,b){var c=[[1,0,0],[0,1,0],[a,b,1]];this.a=G(c,this.a)};j.rotate=function(a){var b=M(a),c=L(a),d=[[b,c,0],[-c,b,0],[0,0,1]];this.a=G(d,this.a)};j.scale=function(a,b){this.d*=a;this.e*=b;var c=[[a,0,0],[0,b,0],[0,0,1]];this.a=G(c,this.a)};j.clip=function(){};j.arcTo=function(){};j.createPattern=function(){return new P};function H(a){this.p=a;this.n=0;this.o=
+0;this.h=[];this.i={x:0,y:0}}H.prototype.addColorStop=function(a,b){b=O(b);this.h.push({offset:1-a,color:b})};function P(){}G_vmlCanvasManager=Q;CanvasRenderingContext2D=K;CanvasGradient=H;CanvasPattern=P})()};
diff --git a/sys/lib/python/mercurial/templates/static/graph.js b/sys/lib/python/mercurial/templates/static/graph.js
new file mode 100644 (file)
index 0000000..0d4dcdd
--- /dev/null
@@ -0,0 +1,137 @@
+// branch_renderer.js - Rendering of branch DAGs on the client side
+//
+// Copyright 2008 Dirkjan Ochtman <dirkjan AT ochtman DOT nl>
+// Copyright 2006 Alexander Schremmer <alex AT alexanderweb DOT de>
+//
+// derived from code written by Scott James Remnant <scott@ubuntu.com>
+// Copyright 2005 Canonical Ltd.
+//
+// This software may be used and distributed according to the terms
+// of the GNU General Public License, incorporated herein by reference.
+
+var colors = [
+       [ 1.0, 0.0, 0.0 ],
+       [ 1.0, 1.0, 0.0 ],
+       [ 0.0, 1.0, 0.0 ],
+       [ 0.0, 1.0, 1.0 ],
+       [ 0.0, 0.0, 1.0 ],
+       [ 1.0, 0.0, 1.0 ]
+];
+
+function Graph() {
+       
+       this.canvas = document.getElementById('graph');
+       if (navigator.userAgent.indexOf('MSIE') >= 0) this.canvas = window.G_vmlCanvasManager.initElement(this.canvas);
+       this.ctx = this.canvas.getContext('2d');
+       this.ctx.strokeStyle = 'rgb(0, 0, 0)';
+       this.ctx.fillStyle = 'rgb(0, 0, 0)';
+       this.cur = [0, 0];
+       this.line_width = 3;
+       this.bg = [0, 4];
+       this.cell = [2, 0];
+       this.columns = 0;
+       this.revlink = '';
+       
+       this.scale = function(height) {
+               this.bg_height = height;
+               this.box_size = Math.floor(this.bg_height / 1.2);
+               this.cell_height = this.box_size;
+       }
+       
+       function colorPart(num) {
+               num *= 255
+               num = num < 0 ? 0 : num;
+               num = num > 255 ? 255 : num;
+               var digits = Math.round(num).toString(16);
+               if (num < 16) {
+                       return '0' + digits;
+               } else {
+                       return digits;
+               }
+       }
+
+       this.setColor = function(color, bg, fg) {
+               
+               // Set the colour.
+               //
+               // Picks a distinct colour based on an internal wheel; the bg
+               // parameter provides the value that should be assigned to the 'zero'
+               // colours and the fg parameter provides the multiplier that should be
+               // applied to the foreground colours.
+               
+               color %= colors.length;
+               var red = (colors[color][0] * fg) || bg;
+               var green = (colors[color][1] * fg) || bg;
+               var blue = (colors[color][2] * fg) || bg;
+               red = Math.round(red * 255);
+               green = Math.round(green * 255);
+               blue = Math.round(blue * 255);
+               var s = 'rgb(' + red + ', ' + green + ', ' + blue + ')';
+               this.ctx.strokeStyle = s;
+               this.ctx.fillStyle = s;
+               return s;
+               
+       }
+
+       this.render = function(data) {
+               
+               var backgrounds = '';
+               var nodedata = '';
+               
+               for (var i in data) {
+                       
+                       var parity = i % 2;
+                       this.cell[1] += this.bg_height;
+                       this.bg[1] += this.bg_height;
+                       
+                       var cur = data[i];
+                       var node = cur[1];
+                       var edges = cur[2];
+                       var fold = false;
+                       
+                       for (var j in edges) {
+                               
+                               line = edges[j];
+                               start = line[0];
+                               end = line[1];
+                               color = line[2];
+
+                               if (end > this.columns || start > this.columns) {
+                                       this.columns += 1;
+                               }
+                               
+                               if (start == this.columns && start > end) {
+                                       var fold = true;
+                               }
+                               
+                               x0 = this.cell[0] + this.box_size * start + this.box_size / 2;
+                               y0 = this.bg[1] - this.bg_height / 2;
+                               x1 = this.cell[0] + this.box_size * end + this.box_size / 2;
+                               y1 = this.bg[1] + this.bg_height / 2;
+                               
+                               this.edge(x0, y0, x1, y1, color);
+                               
+                       }
+                       
+                       // Draw the revision node in the right column
+                       
+                       column = node[0]
+                       color = node[1]
+                       
+                       radius = this.box_size / 8;
+                       x = this.cell[0] + this.box_size * column + this.box_size / 2;
+                       y = this.bg[1] - this.bg_height / 2;
+                       var add = this.vertex(x, y, color, parity, cur);
+                       backgrounds += add[0];
+                       nodedata += add[1];
+                       
+                       if (fold) this.columns -= 1;
+                       
+               }
+               
+               document.getElementById('nodebgs').innerHTML += backgrounds;
+               document.getElementById('graphnodes').innerHTML += nodedata;
+               
+       }
+
+}
diff --git a/sys/lib/python/mercurial/templates/static/hgicon.png b/sys/lib/python/mercurial/templates/static/hgicon.png
new file mode 100644 (file)
index 0000000..60effbc
Binary files /dev/null and b/sys/lib/python/mercurial/templates/static/hgicon.png differ
diff --git a/sys/lib/python/mercurial/templates/static/hglogo.png b/sys/lib/python/mercurial/templates/static/hglogo.png
new file mode 100644 (file)
index 0000000..adc6e65
Binary files /dev/null and b/sys/lib/python/mercurial/templates/static/hglogo.png differ
diff --git a/sys/lib/python/mercurial/templates/static/style-coal.css b/sys/lib/python/mercurial/templates/static/style-coal.css
new file mode 100644 (file)
index 0000000..9df71c7
--- /dev/null
@@ -0,0 +1,265 @@
+body {
+  margin: 0;
+  padding: 0;
+  background: black url(background.png) repeat-x;
+  font-family: sans-serif;
+}
+
+.container {
+  padding-right: 150px;
+}
+
+.main {
+  position: relative;
+  background: white;
+  padding: 2em;
+  border-right: 15px solid black;
+  border-bottom: 15px solid black;
+}
+
+#.main {
+  width: 98%;
+}
+
+.overflow {
+  width: 100%;
+  overflow: auto;
+}
+
+.menu {
+  background: #999;
+  padding: 10px;
+  width: 75px;
+  margin: 0;
+  font-size: 80%;
+  text-align: left;
+  position: fixed;
+  top: 27px;
+  left: auto;
+  right: 27px;
+}
+
+#.menu {
+  position: absolute !important;
+  top:expression(eval(document.body.scrollTop + 27));
+}
+
+.menu ul {
+  list-style: none;
+  padding: 0;
+  margin: 10px 0 0 0;
+}
+
+.menu li {
+  margin-bottom: 3px;
+  padding: 2px 4px;
+  background: white;
+  color: black;
+  font-weight: normal;
+}
+
+.menu li.active {
+  background: black;
+  color: white;
+}
+
+.menu img {
+  width: 75px;
+  height: 90px;
+  border: 0;
+}
+
+.menu a { color: black; display: block; }
+
+.search {
+  position: absolute;
+  top: .7em;
+  right: 2em;
+}
+
+form.search div#hint {
+  display: none;
+  position: absolute;
+  top: 40px;
+  right: 0px;
+  width: 190px;
+  padding: 5px;
+  background: #ffc;
+  font-size: 70%;
+  border: 1px solid yellow;
+  -moz-border-radius: 5px; /* this works only in camino/firefox */
+  -webkit-border-radius: 5px; /* this is just for Safari */
+}
+
+form.search:hover div#hint { display: block; }
+
+a { text-decoration:none; }
+.age { white-space:nowrap; }
+.date { white-space:nowrap; }
+.indexlinks { white-space:nowrap; }
+.parity0 { background-color: #f0f0f0; }
+.parity1 { background-color: white; }
+.plusline { color: green; }
+.minusline { color: #dc143c; } /* crimson */
+.atline { color: purple; }
+
+.navigate {
+  text-align: right;
+  font-size: 60%;
+  margin: 1em 0;
+}
+
+.tag {
+  color: #999;
+  font-size: 70%;
+  font-weight: normal;
+  margin-left: .5em;
+  vertical-align: baseline;
+}
+
+.branchhead {
+  color: #000;
+  font-size: 80%;
+  font-weight: normal;
+  margin-left: .5em;
+  vertical-align: baseline;
+}
+
+ul#graphnodes .branchhead {
+  font-size: 75%;
+}
+
+.branchname {
+  color: #000;
+  font-size: 60%; 
+  font-weight: normal;
+  margin-left: .5em;
+  vertical-align: baseline;
+}
+
+h3 .branchname {
+  font-size: 80%;
+}
+
+/* Common */
+pre { margin: 0; }
+
+h2 { font-size: 120%; border-bottom: 1px solid #999; }
+h2 a { color: #000; }
+h3 {
+  margin-top: -.7em;
+  font-size: 100%;
+}
+
+/* log and tags tables */
+.bigtable {
+  border-bottom: 1px solid #999;
+  border-collapse: collapse;
+  font-size: 90%;
+  width: 100%;
+  font-weight: normal;
+  text-align: left;
+}
+
+.bigtable td {
+  vertical-align: top;
+}
+
+.bigtable th {
+  padding: 1px 4px;
+  border-bottom: 1px solid #999;
+}
+.bigtable tr { border: none; }
+.bigtable .age { width: 6em; }
+.bigtable .author { width: 12em; }
+.bigtable .description { }
+.bigtable .node { width: 5em; font-family: monospace;}
+.bigtable .lineno { width: 2em; text-align: right;}
+.bigtable .lineno a { color: #999; font-size: smaller; font-family: monospace;}
+.bigtable .permissions { width: 8em; text-align: left;}
+.bigtable .size { width: 5em; text-align: right; }
+.bigtable .annotate { text-align: right; }
+.bigtable td.annotate { font-size: smaller; }
+.bigtable td.source { font-size: inherit; }
+
+.source, .sourcefirst, .sourcelast {
+  font-family: monospace;
+  white-space: pre;
+  padding: 1px 4px;
+  font-size: 90%;
+}
+.sourcefirst { border-bottom: 1px solid #999; font-weight: bold; }
+.sourcelast { border-top: 1px solid #999; }
+.source a { color: #999; font-size: smaller; font-family: monospace;}
+.bottomline { border-bottom: 1px solid #999; }
+
+.fileline { font-family: monospace; }
+.fileline img { border: 0; }
+
+.tagEntry .closed { color: #99f; }
+
+/* Changeset entry */
+#changesetEntry {
+  border-collapse: collapse;
+  font-size: 90%;
+  width: 100%;
+  margin-bottom: 1em;
+}
+
+#changesetEntry th {
+  padding: 1px 4px;
+  width: 4em;
+  text-align: right;
+  font-weight: normal;
+  color: #999;
+  margin-right: .5em;
+  vertical-align: top;
+}
+
+div.description {
+  border-left: 3px solid #999;
+  margin: 1em 0 1em 0;
+  padding: .3em;
+}
+
+/* Graph */
+div#wrapper {
+       position: relative;
+       border-top: 1px solid black;
+       border-bottom: 1px solid black;
+       margin: 0;
+       padding: 0;
+}
+
+canvas {
+       position: absolute;
+       z-index: 5;
+       top: -0.7em;
+       margin: 0;
+}
+
+ul#graphnodes {
+       position: absolute;
+       z-index: 10;
+       top: -1.0em;
+       list-style: none inside none;
+       padding: 0;
+}
+
+ul#nodebgs {
+       list-style: none inside none;
+       padding: 0;
+       margin: 0;
+       top: -0.7em;
+}
+
+ul#graphnodes li, ul#nodebgs li {
+       height: 39px;
+}
+
+ul#graphnodes li .info {
+       display: block;
+       font-size: 70%;
+       position: relative;
+       top: -3px;
+}
diff --git a/sys/lib/python/mercurial/templates/static/style-gitweb.css b/sys/lib/python/mercurial/templates/static/style-gitweb.css
new file mode 100644 (file)
index 0000000..09fc3dc
--- /dev/null
@@ -0,0 +1,123 @@
+body { font-family: sans-serif; font-size: 12px; margin:0px; border:solid #d9d8d1; border-width:1px; margin:10px; }
+a { color:#0000cc; }
+a:hover, a:visited, a:active { color:#880000; }
+div.page_header { height:25px; padding:8px; font-size:18px; font-weight:bold; background-color:#d9d8d1; }
+div.page_header a:visited { color:#0000cc; }
+div.page_header a:hover { color:#880000; }
+div.page_nav { padding:8px; }
+div.page_nav a:visited { color:#0000cc; }
+div.page_path { padding:8px; border:solid #d9d8d1; border-width:0px 0px 1px}
+div.page_footer { padding:4px 8px; background-color: #d9d8d1; }
+div.page_footer_text { float:left; color:#555555; font-style:italic; }
+div.page_body { padding:8px; }
+div.title, a.title {
+       display:block; padding:6px 8px;
+       font-weight:bold; background-color:#edece6; text-decoration:none; color:#000000;
+}
+a.title:hover { background-color: #d9d8d1; }
+div.title_text { padding:6px 0px; border: solid #d9d8d1; border-width:0px 0px 1px; }
+div.log_body { padding:8px 8px 8px 150px; }
+.age { white-space:nowrap; }
+span.age { position:relative; float:left; width:142px; font-style:italic; }
+div.log_link {
+       padding:0px 8px;
+       font-size:10px; font-family:sans-serif; font-style:normal;
+       position:relative; float:left; width:136px;
+}
+div.list_head { padding:6px 8px 4px; border:solid #d9d8d1; border-width:1px 0px 0px; font-style:italic; }
+a.list { text-decoration:none; color:#000000; }
+a.list:hover { text-decoration:underline; color:#880000; }
+table { padding:8px 4px; }
+th { padding:2px 5px; font-size:12px; text-align:left; }
+tr.light:hover, .parity0:hover { background-color:#edece6; }
+tr.dark, .parity1 { background-color:#f6f6f0; }
+tr.dark:hover, .parity1:hover { background-color:#edece6; }
+td { padding:2px 5px; font-size:12px; vertical-align:top; }
+td.link { padding:2px 5px; font-family:sans-serif; font-size:10px; }
+td.indexlinks { white-space: nowrap; }
+td.indexlinks a {
+  padding: 2px 5px; line-height: 10px;
+  border: 1px solid;
+  color: #ffffff; background-color: #7777bb;
+  border-color: #aaaadd #333366 #333366 #aaaadd;
+  font-weight: bold;  text-align: center; text-decoration: none;
+  font-size: 10px;
+}
+td.indexlinks a:hover { background-color: #6666aa; }
+div.pre { font-family:monospace; font-size:12px; white-space:pre; }
+div.diff_info { font-family:monospace; color:#000099; background-color:#edece6; font-style:italic; }
+div.index_include { border:solid #d9d8d1; border-width:0px 0px 1px; padding:12px 8px; }
+div.search { margin:4px 8px; position:absolute; top:56px; right:12px }
+.linenr { color:#999999; text-decoration:none }
+div.rss_logo { float: right; white-space: nowrap; }
+div.rss_logo a {
+       padding:3px 6px; line-height:10px;
+       border:1px solid; border-color:#fcc7a5 #7d3302 #3e1a01 #ff954e;
+       color:#ffffff; background-color:#ff6600;
+       font-weight:bold; font-family:sans-serif; font-size:10px;
+       text-align:center; text-decoration:none;
+}
+div.rss_logo a:hover { background-color:#ee5500; }
+pre { margin: 0; }
+span.logtags span {
+       padding: 0px 4px;
+       font-size: 10px;
+       font-weight: normal;
+       border: 1px solid;
+       background-color: #ffaaff;
+       border-color: #ffccff #ff00ee #ff00ee #ffccff;
+}
+span.logtags span.tagtag {
+       background-color: #ffffaa;
+       border-color: #ffffcc #ffee00 #ffee00 #ffffcc;
+}
+span.logtags span.branchtag {
+       background-color: #aaffaa;
+       border-color: #ccffcc #00cc33 #00cc33 #ccffcc;
+}
+span.logtags span.inbranchtag {
+       background-color: #d5dde6;
+       border-color: #e3ecf4 #9398f4 #9398f4 #e3ecf4;
+}
+
+/* Graph */
+div#wrapper {
+       position: relative;
+       margin: 0;
+       padding: 0;
+       margin-top: 3px;
+}
+
+canvas {
+       position: absolute;
+       z-index: 5;
+       top: -0.9em;
+       margin: 0;
+}
+
+ul#nodebgs {
+       list-style: none inside none;
+       padding: 0;
+       margin: 0;
+       top: -0.7em;
+}
+
+ul#graphnodes li, ul#nodebgs li {
+       height: 39px;
+}
+
+ul#graphnodes {
+       position: absolute;
+       z-index: 10;
+       top: -0.8em;
+       list-style: none inside none;
+       padding: 0;
+}
+
+ul#graphnodes li .info {
+       display: block;
+       font-size: 100%;
+       position: relative;
+       top: -3px;
+       font-style: italic;
+}
diff --git a/sys/lib/python/mercurial/templates/static/style-monoblue.css b/sys/lib/python/mercurial/templates/static/style-monoblue.css
new file mode 100644 (file)
index 0000000..12611ea
--- /dev/null
@@ -0,0 +1,472 @@
+/*** Initial Settings ***/
+* {
+  margin: 0;
+  padding: 0;
+  font-weight: normal;
+  font-style: normal;
+}
+
+html {
+  font-size: 100%;
+  font-family: sans-serif;
+}
+
+body {
+  font-size: 77%;
+  margin: 15px 50px;
+  background: #4B4B4C;
+}
+
+a {
+  color:#0000cc;
+  text-decoration: none;
+}
+/*** end of Initial Settings ***/
+
+
+/** common settings **/
+div#container {
+  background: #FFFFFF;
+  position: relative;
+  color: #666;
+}
+
+div.page-header {
+  padding: 50px 20px 0;
+  background: #006699 top left repeat-x;
+  position: relative;
+}
+  div.page-header h1 {
+    margin: 10px 0 30px;
+    font-size: 1.8em;
+    font-weight: bold;
+    font-family: osaka,'MS P Gothic', Georgia, serif;
+    letter-spacing: 1px;
+    color: #DDD;
+  }
+  div.page-header h1 a {
+    font-weight: bold;
+    color: #FFF;
+  }
+  div.page-header a {
+    text-decoration: none;
+  }
+
+  div.page-header form {
+    position: absolute;
+    margin-bottom: 2px;
+    bottom: 0;
+    right: 20px;
+  }
+  div.page-header form label {
+    color: #DDD;
+  }
+  div.page-header form input {
+    padding: 2px;
+    border: solid 1px #DDD;
+  }
+  div.page-header form dl {
+    overflow: hidden;
+  }
+  div.page-header form dl dt {
+    font-size: 1.2em;
+  }
+  div.page-header form dl dt,
+  div.page-header form dl dd {
+    margin: 0 0 0 5px;
+    float: left;
+    height: 24px;
+    line-height: 20px;
+  }
+
+  ul.page-nav {
+    margin: 10px 0 0 0;
+    list-style-type: none;
+    overflow: hidden;
+    width: 800px;
+  }
+    ul.page-nav li {
+      margin: 0 2px 0 0;
+      float: left;
+      width: 80px;
+      height: 24px;
+      font-size: 1.1em;
+      line-height: 24px;
+      text-align: center;
+    }
+    ul.page-nav li.current {
+      background: #FFF;
+    }
+    ul.page-nav li a {
+      height: 24px;
+      color: #666;
+      background: #DDD;
+      display: block;
+      text-decoration: none;
+    }
+    ul.page-nav li a:hover {
+      color:#333;
+      background: #FFF;
+    }
+
+ul.submenu {
+  margin: 10px 0 -10px 20px;
+  list-style-type: none;
+}
+ul.submenu li {
+  margin: 0 10px 0 0;
+  font-size: 1.2em;
+  display: inline;
+}
+
+h2 {
+  margin: 20px 0 10px;
+  height: 30px;
+  line-height: 30px;
+  text-indent: 20px;
+  background: #FFF;
+  font-size: 1.2em;
+  border-top: dotted 1px #D5E1E6;
+  font-weight: bold;
+}
+h2.no-link {
+  color:#006699;
+}
+h2.no-border {
+  color: #FFF;
+  background: #006699;
+  border: 0;
+}
+h2 a {
+  font-weight:bold;
+  color:#006699;
+}
+
+div.page-path {
+  text-align: right;
+  padding: 20px 30px 10px 0;
+  border:solid #d9d8d1;
+  border-width:0px 0px 1px;
+  font-size: 1.2em;
+}
+
+div.page-footer {
+  margin: 50px 0 0;
+  position: relative;
+}
+  div.page-footer p {
+    position: relative;
+    left: 20px;
+    bottom: 5px;
+    font-size: 1.2em;
+  }
+
+  ul.rss-logo {
+    position: absolute;
+    top: -10px;
+    right: 20px;
+    height: 20px;
+    list-style-type: none;
+  }
+  ul.rss-logo li {
+    display: inline;
+  }
+  ul.rss-logo li a {
+    padding: 3px 6px;
+    line-height: 10px;
+    border:1px solid;
+    border-color:#fcc7a5 #7d3302 #3e1a01 #ff954e;
+    color:#ffffff;
+    background-color:#ff6600;
+    font-weight:bold;
+    font-family:sans-serif;
+    font-size:10px;
+    text-align:center;
+    text-decoration:none;
+  }
+  div.rss-logo li a:hover {
+    background-color:#ee5500;
+  }
+
+p.normal {
+  margin: 20px 0 20px 30px;
+  font-size: 1.2em;
+}
+
+table {
+  margin: 10px 0 0 20px;
+  width: 95%;
+  border-collapse: collapse;
+}
+table tr td {
+  font-size: 1.1em;
+}
+table tr td.nowrap {
+  white-space: nowrap;
+}
+/*
+table tr.parity0:hover,
+table tr.parity1:hover {
+  background: #D5E1E6;
+}
+*/
+table tr.parity0 {
+  background: #F1F6F7;
+}
+table tr.parity1 {
+  background: #FFFFFF;
+}
+table tr td {
+  padding: 5px 5px;
+}
+table.annotated tr td {
+  padding: 0px 5px;
+}
+
+span.logtags span {
+  padding: 2px 6px;
+  font-weight: normal;
+  font-size: 11px;
+  border: 1px solid;
+  background-color: #ffaaff;
+  border-color: #ffccff #ff00ee #ff00ee #ffccff;
+}
+span.logtags span.tagtag {
+  background-color: #ffffaa;
+  border-color: #ffffcc #ffee00 #ffee00 #ffffcc;
+}
+span.logtags span.branchtag {
+  background-color: #aaffaa;
+  border-color: #ccffcc #00cc33 #00cc33 #ccffcc;
+}
+span.logtags span.inbranchtag {
+  background-color: #d5dde6;
+  border-color: #e3ecf4 #9398f4 #9398f4 #e3ecf4;
+}
+
+div.diff pre {
+  margin: 10px 0 0 0;
+}
+div.diff pre span {
+  font-family: monospace;
+  white-space: pre;
+  font-size: 1.2em;
+  padding: 3px 0;
+}
+td.source {
+  white-space: pre;
+  font-family: monospace;
+  margin: 10px 30px 0;
+  font-size: 1.2em;
+  font-family: monospace;
+}
+  div.source div.parity0,
+  div.source div.parity1 {
+    padding: 1px;
+    font-size: 1.2em;
+  }
+  div.source div.parity0 {
+    background: #F1F6F7;
+  }
+  div.source div.parity1 {
+    background: #FFFFFF;
+  }
+div.parity0:hover,
+div.parity1:hover {
+  background: #D5E1E6;
+}
+.linenr {
+  color: #999;
+  text-align: right;
+}
+.lineno {
+  text-align: right;
+}
+.lineno a {
+  color: #999;
+}
+td.linenr {
+  width: 60px;
+}
+
+div#powered-by {
+  position: absolute;
+  width: 75px;
+  top: 15px;
+  right: 20px;
+  font-size: 1.2em;
+}
+div#powered-by a {
+  color: #EEE;
+  text-decoration: none;
+}
+div#powered-by a:hover {
+  text-decoration: underline;
+}
+/*
+div#monoblue-corner-top-left {
+  position: absolute;
+  top: 0;
+  left: 0;
+  width: 10px;
+  height: 10px;
+  background: url(./monoblue-corner.png) top left no-repeat !important;
+  background: none;
+}
+div#monoblue-corner-top-right {
+  position: absolute;
+  top: 0;
+  right: 0;
+  width: 10px;
+  height: 10px;
+  background: url(./monoblue-corner.png) top right no-repeat !important;
+  background: none;
+}
+div#monoblue-corner-bottom-left {
+  position: absolute;
+  bottom: 0;
+  left: 0;
+  width: 10px;
+  height: 10px;
+  background: url(./monoblue-corner.png) bottom left no-repeat !important;
+  background: none;
+}
+div#monoblue-corner-bottom-right {
+  position: absolute;
+  bottom: 0;
+  right: 0;
+  width: 10px;
+  height: 10px;
+  background: url(./monoblue-corner.png) bottom right no-repeat !important;
+  background: none;
+}
+*/
+/** end of common settings **/
+
+/** summary **/
+dl.overview {
+  margin: 0 0 0 30px;
+  font-size: 1.1em;
+  overflow: hidden;
+}
+  dl.overview dt,
+  dl.overview dd {
+    margin: 5px 0;
+    float: left;
+  }
+  dl.overview dt {
+    clear: left;
+    font-weight: bold;
+    width: 150px;
+  }
+/** end of summary **/
+
+/** chagelog **/
+h3.changelog {
+  margin: 20px 0 5px 30px;
+  padding: 0 0 2px;
+  font-size: 1.4em;
+  border-bottom: dotted 1px #D5E1E6;
+}
+ul.changelog-entry {
+  margin: 0 0 10px 30px;
+  list-style-type: none;
+  position: relative;
+}
+ul.changelog-entry li span.revdate {
+  font-size: 1.1em;
+}
+ul.changelog-entry li.age {
+  position: absolute;
+  top: -25px;
+  right: 10px;
+  font-size: 1.4em;
+  color: #CCC;
+  font-weight: bold;
+  font-style: italic;
+}
+ul.changelog-entry li span.name {
+  font-size: 1.2em;
+  font-weight: bold;
+}
+ul.changelog-entry li.description {
+  margin: 10px 0 0;
+  font-size: 1.1em;
+}
+/** end of changelog **/
+
+/** file **/
+p.files {
+  margin: 0 0 0 20px;
+  font-size: 2.0em;
+  font-weight: bold;
+}
+/** end of file **/
+
+/** changeset **/
+h3.changeset {
+  margin: 20px 0 5px 20px;
+  padding: 0 0 2px;
+  font-size: 1.6em;
+  border-bottom: dotted 1px #D5E1E6;
+}
+p.changeset-age {
+  position: relative;
+}
+p.changeset-age span {
+  position: absolute;
+  top: -25px;
+  right: 10px;
+  font-size: 1.4em;
+  color: #CCC;
+  font-weight: bold;
+  font-style: italic;
+}
+p.description {
+  margin: 10px 30px 0 30px;
+  padding: 10px;
+  border: solid 1px #CCC;
+  font-size: 1.2em;
+}
+/** end of changeset **/
+
+/** canvas **/
+div#wrapper {
+       position: relative;
+    font-size: 1.2em;
+}
+
+canvas {
+       position: absolute;
+       z-index: 5;
+       top: -0.7em;
+}
+
+ul#nodebgs li.parity0 {
+    background: #F1F6F7;
+}
+
+ul#nodebgs li.parity1 {
+    background: #FFFFFF;
+}
+
+ul#graphnodes {
+       position: absolute;
+       z-index: 10;
+       top: 7px;
+       list-style: none inside none;
+}
+
+ul#nodebgs {
+       list-style: none inside none;
+}
+
+ul#graphnodes li, ul#nodebgs li {
+       height: 39px;
+}
+
+ul#graphnodes li .info {
+       display: block;
+       position: relative;
+}
+/** end of canvas **/
diff --git a/sys/lib/python/mercurial/templates/static/style-paper.css b/sys/lib/python/mercurial/templates/static/style-paper.css
new file mode 100644 (file)
index 0000000..edb9bea
--- /dev/null
@@ -0,0 +1,254 @@
+body {
+  margin: 0;
+  padding: 0;
+  background: white;
+  font-family: sans-serif;
+}
+
+.container {
+  padding-left: 115px;
+}
+
+.main {
+  position: relative;
+  background: white;
+  padding: 2em 2em 2em 0;
+}
+
+#.main {
+  width: 98%;
+}
+
+.overflow {
+  width: 100%;
+  overflow: auto;
+}
+
+.menu {
+  width: 90px;
+  margin: 0;
+  font-size: 80%;
+  text-align: left;
+  position: absolute;
+  top: 20px;
+  left: 20px;
+  right: auto;
+}
+
+.menu ul {
+  list-style: none;
+  padding: 0;
+  margin: 10px 0 0 0;
+  border-left: 2px solid #999;
+}
+
+.menu li {
+  margin-bottom: 3px;
+  padding: 2px 4px;
+  background: white;
+  color: black;
+  font-weight: normal;
+}
+
+.menu li.active {
+  font-weight: bold;
+}
+
+.menu img {
+  width: 75px;
+  height: 90px;
+  border: 0;
+}
+
+.menu a { color: black; display: block; }
+
+.search {
+  position: absolute;
+  top: .7em;
+  right: 2em;
+}
+
+form.search div#hint {
+  display: none;
+  position: absolute;
+  top: 40px;
+  right: 0px;
+  width: 190px;
+  padding: 5px;
+  background: #ffc;
+  font-size: 70%;
+  border: 1px solid yellow;
+  -moz-border-radius: 5px; /* this works only in camino/firefox */
+  -webkit-border-radius: 5px; /* this is just for Safari */
+}
+
+form.search:hover div#hint { display: block; }
+
+a { text-decoration:none; }
+.age { white-space:nowrap; }
+.date { white-space:nowrap; }
+.indexlinks { white-space:nowrap; }
+.parity0 { background-color: #f0f0f0; }
+.parity1 { background-color: white; }
+.plusline { color: green; }
+.minusline { color: #dc143c; } /* crimson */
+.atline { color: purple; }
+
+.navigate {
+  text-align: right;
+  font-size: 60%;
+  margin: 1em 0;
+}
+
+.tag {
+  color: #999;
+  font-size: 70%;
+  font-weight: normal;
+  margin-left: .5em;
+  vertical-align: baseline;
+}
+
+.branchhead {
+  color: #000;
+  font-size: 80%;
+  font-weight: normal;
+  margin-left: .5em;
+  vertical-align: baseline;
+}
+
+ul#graphnodes .branchhead {
+  font-size: 75%;
+}
+
+.branchname {
+  color: #000;
+  font-size: 60%; 
+  font-weight: normal;
+  margin-left: .5em;
+  vertical-align: baseline;
+}
+
+h3 .branchname {
+  font-size: 80%;
+}
+
+/* Common */
+pre { margin: 0; }
+
+h2 { font-size: 120%; border-bottom: 1px solid #999; }
+h2 a { color: #000; }
+h3 {
+  margin-top: -.7em;
+  font-size: 100%;
+}
+
+/* log and tags tables */
+.bigtable {
+  border-bottom: 1px solid #999;
+  border-collapse: collapse;
+  font-size: 90%;
+  width: 100%;
+  font-weight: normal;
+  text-align: left;
+}
+
+.bigtable td {
+  vertical-align: top;
+}
+
+.bigtable th {
+  padding: 1px 4px;
+  border-bottom: 1px solid #999;
+}
+.bigtable tr { border: none; }
+.bigtable .age { width: 6em; }
+.bigtable .author { width: 12em; }
+.bigtable .description { }
+.bigtable .node { width: 5em; font-family: monospace;}
+.bigtable .permissions { width: 8em; text-align: left;}
+.bigtable .size { width: 5em; text-align: right; }
+.bigtable .annotate { text-align: right; }
+.bigtable td.annotate { font-size: smaller; }
+.bigtable td.source { font-size: inherit; }
+
+.source, .sourcefirst, .sourcelast {
+  font-family: monospace;
+  white-space: pre;
+  padding: 1px 4px;
+  font-size: 90%;
+}
+.sourcefirst { border-bottom: 1px solid #999; font-weight: bold; }
+.sourcelast { border-top: 1px solid #999; }
+.source a { color: #999; font-size: smaller; font-family: monospace;}
+.bottomline { border-bottom: 1px solid #999; }
+
+.fileline { font-family: monospace; }
+.fileline img { border: 0; }
+
+.tagEntry .closed { color: #99f; }
+
+/* Changeset entry */
+#changesetEntry {
+  border-collapse: collapse;
+  font-size: 90%;
+  width: 100%;
+  margin-bottom: 1em;
+}
+
+#changesetEntry th {
+  padding: 1px 4px;
+  width: 4em;
+  text-align: right;
+  font-weight: normal;
+  color: #999;
+  margin-right: .5em;
+  vertical-align: top;
+}
+
+div.description {
+  border-left: 2px solid #999;
+  margin: 1em 0 1em 0;
+  padding: .3em;
+}
+
+/* Graph */
+div#wrapper {
+       position: relative;
+       border-top: 1px solid black;
+       border-bottom: 1px solid black;
+       margin: 0;
+       padding: 0;
+}
+
+canvas {
+       position: absolute;
+       z-index: 5;
+       top: -0.7em;
+       margin: 0;
+}
+
+ul#graphnodes {
+       position: absolute;
+       z-index: 10;
+       top: -1.0em;
+       list-style: none inside none;
+       padding: 0;
+}
+
+ul#nodebgs {
+       list-style: none inside none;
+       padding: 0;
+       margin: 0;
+       top: -0.7em;
+}
+
+ul#graphnodes li, ul#nodebgs li {
+       height: 39px;
+}
+
+ul#graphnodes li .info {
+       display: block;
+       font-size: 70%;
+       position: relative;
+       top: -3px;
+}
diff --git a/sys/lib/python/mercurial/templates/static/style.css b/sys/lib/python/mercurial/templates/static/style.css
new file mode 100644 (file)
index 0000000..66bd96d
--- /dev/null
@@ -0,0 +1,105 @@
+a { text-decoration:none; }
+.age { white-space:nowrap; }
+.date { white-space:nowrap; }
+.indexlinks { white-space:nowrap; }
+.parity0 { background-color: #ddd; }
+.parity1 { background-color: #eee; }
+.lineno { width: 60px; color: #aaa; font-size: smaller;
+          text-align: right; }
+.plusline { color: green; }
+.minusline { color: red; }
+.atline { color: purple; }
+.annotate { font-size: smaller; text-align: right; padding-right: 1em; }
+.buttons a {
+  background-color: #666;
+  padding: 2pt;
+  color: white;
+  font-family: sans;
+  font-weight: bold;
+}
+.navigate a {
+  background-color: #ccc;
+  padding: 2pt;
+  font-family: sans;
+  color: black;
+}
+
+.metatag {
+  background-color: #888;
+  color: white;
+  text-align: right;
+}
+
+/* Common */
+pre { margin: 0; }
+
+.logo {
+  float: right;
+  clear: right;
+}
+
+/* Changelog/Filelog entries */
+.logEntry { width: 100%; }
+.logEntry .age { width: 15%; }
+.logEntry th { font-weight: normal; text-align: right; vertical-align: top; }
+.logEntry th.age, .logEntry th.firstline { font-weight: bold; }
+.logEntry th.firstline { text-align: left; width: inherit; }
+
+/* Shortlog entries */
+.slogEntry { width: 100%; }
+.slogEntry .age { width: 8em; }
+.slogEntry td { font-weight: normal; text-align: left; vertical-align: top; }
+.slogEntry td.author { width: 15em; }
+
+/* Tag entries */
+#tagEntries { list-style: none; margin: 0; padding: 0; }
+#tagEntries .tagEntry { list-style: none; margin: 0; padding: 0; }
+
+/* Changeset entry */
+#changesetEntry { }
+#changesetEntry th { font-weight: normal; background-color: #888; color: #fff; text-align: right; }
+#changesetEntry th.files, #changesetEntry th.description { vertical-align: top; }
+
+/* File diff view */
+#filediffEntry { }
+#filediffEntry th { font-weight: normal; background-color: #888; color: #fff; text-align: right; }
+
+/* Graph */
+div#wrapper {
+       position: relative;
+       margin: 0;
+       padding: 0;
+}
+
+canvas {
+       position: absolute;
+       z-index: 5;
+       top: -0.6em;
+       margin: 0;
+}
+
+ul#nodebgs {
+       list-style: none inside none;
+       padding: 0;
+       margin: 0;
+       top: -0.7em;
+}
+
+ul#graphnodes li, ul#nodebgs li {
+       height: 39px;
+}
+
+ul#graphnodes {
+       position: absolute;
+       z-index: 10;
+       top: -0.85em;
+       list-style: none inside none;
+       padding: 0;
+}
+
+ul#graphnodes li .info {
+       display: block;
+       font-size: 70%;
+       position: relative;
+       top: -1px;
+}
diff --git a/sys/lib/python/mercurial/templates/template-vars.txt b/sys/lib/python/mercurial/templates/template-vars.txt
new file mode 100644 (file)
index 0000000..f434d72
--- /dev/null
@@ -0,0 +1,37 @@
+repo          the name of the repo
+rev           a changeset.manifest revision
+node          a changeset node
+changesets    total number of changesets
+file          a filename
+filerev       a file revision
+filerevs      total number of file revisions
+up            the directory of the relevant file
+path          a path in the manifest, starting with "/"
+basename      a short pathname
+date          a date string
+age           age in hours, days, etc
+line          a line of text (escaped)
+desc          a description (escaped, with breaks)
+shortdesc     a short description (escaped)
+author        a name or email addressv(obfuscated)
+parent        a list of the parent
+child         a list of the children
+tags          a list of tag
+
+header        the global page header
+footer        the global page footer
+
+files         a list of file links
+file_copies   a list of pairs of name, source filenames
+dirs          a set of directory links
+diff          a diff of one or more files
+annotate      an annotated file
+entries       the entries relevant to the page
+
+Templates and commands:
+  changelog(rev) - a page for browsing changesets
+    naventry - a link for jumping to a changeset number
+    filenodelink - jump to file diff
+    fileellipses - printed after maxfiles
+    changelogentry - an entry in the log
+  manifest - browse a manifest as a directory tree
index b18eb48a99b0f8d206eca5a4687539262ffc707b..3745e18c9977cdd22ae45f82217abbc9988eb31e 100644 (file)
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/bin/python
 #
 # An example CGI script to use hgweb, edit as necessary
 
index 79d86ad1f15f3d42d21b74b598e3a86d4ec43fbd..b09b4fa889693ec47a3da44d36e711ed0dbd550c 100644 (file)
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/bin/python
 #
 # An example CGI script to export multiple hgweb repos, edit as necessary
 
index 85ec689f6d80d5fd998f19b972523ac60dc4b321..f6000b50244a43fc66559b5845a9df5dafc97ef5 100644 (file)
@@ -41,7 +41,7 @@ class localrepository(repo.repository):
         if not os.path.isdir(self.path):
             if create:
                 if not os.path.exists(path):
-                    os.mkdir(path)
+                    os.makedirs(path)
                 os.mkdir(self.path)
                 requirements = ["revlogv1"]
                 if self.ui.configbool('format', 'usestore', True):
index e71f8d4c8c82d9aa77091d96cefd9b0da12b7749..91b120460326a56222a94f2f003ff65a25792a4c 100644 (file)
@@ -11,7 +11,9 @@ setup:V:
        cp mercurial/*.c /sys/src/cmd/python/Extra/mercurial
        for(i in mercurial hgext){
                mkdir -p /sys/lib/python/$i
-               dircp mercurial /sys/lib/python/$i
+               dircp $i /sys/lib/python/$i
        }
+       mkdir -p /sys/lib/python/mercurial/templates
+       dircp templates /sys/lib/python/mercurial/templates
        cp hg /rc/bin/hg
        echo Now rebuild python!