hgweb:generate rev number for template

bardy bardiku at gmail.com
Wed Apr 8 22:04:20 CDT 2009


# HG changeset patch
# User bardy <bardiku at gmail.com>
# Date 1239245957 -28800
# Node ID 0c078dbd60ce2adbee15e99bfa6dfdd4a9fe04c8
# Parent  db3a68fd9387d10308148bbf1a18c89bf50ce96d
hgweb:generate rev number for template

to be able to reference rev number in hgweb template, generate the missing rev
number in filelog,graph and revnavgen first, so later you can reference it in
filelog.tmpl,graph.tmpl and map (navshortentry , filenaventry ,navgraphentry)

diff --git a/mercurial/hgweb/webcommands.py b/mercurial/hgweb/webcommands.py
--- a/mercurial/hgweb/webcommands.py
+++ b/mercurial/hgweb/webcommands.py
@@ -544,7 +544,7 @@
             iterfctx = fctx.filectx(i)

             l.insert(0, {"parity": parity.next(),
-                         "filerev": i,
+                         "filerev": iterfctx.rev(),
                          "file": f,
                          "node": hex(iterfctx.node()),
                          "author": iterfctx.user(),
@@ -566,7 +566,11 @@

     nodefunc = lambda x: fctx.filectx(fileid=x)
     nav = webutil.revnavgen(end - 1, pagelen, count, nodefunc)
-    return tmpl("filelog", file=f, node=hex(fctx.node()), nav=nav,
+    return tmpl("filelog",
+                file=f,
+                rev=fctx.rev(),
+                node=hex(fctx.node()),
+                nav=nav,
                 entries=lambda **x: entries(limit=0, **x),
                 latestentry=lambda **x: entries(limit=1, **x))

@@ -650,7 +654,8 @@
         user = cgi.escape(templatefilters.person(ctx.user()))
         branch = ctx.branch()
         branch = branch, web.repo.branchtags().get(branch) == ctx.node()
-        data.append((node, vtx, edges, desc, user, age, branch, ctx.tags()))
+        data.append((node, vtx, edges, desc, user, age, branch, ctx.tags()
+                    ,ctx.rev()))

     return tmpl('graph', rev=rev, revcount=revcount, uprev=uprev,
                 lessvars=lessvars, morevars=morevars, downrev=downrev,
diff --git a/mercurial/hgweb/webutil.py b/mercurial/hgweb/webutil.py
--- a/mercurial/hgweb/webutil.py
+++ b/mercurial/hgweb/webutil.py
@@ -42,17 +42,17 @@
                 break
             last = f
             if pos + f < limit:
-                l.append(("+%d" % f, hex(nodefunc(pos + f).node())))
+                l.append(("+%d" % f, hex(nodefunc(pos + f).node()),pos+f))
             if pos - f >= 0:
-                l.insert(0, ("-%d" % f, hex(nodefunc(pos - f).node())))
+                l.insert(0, ("-%d" % f, hex(nodefunc(pos - f).node()),pos-f))

         try:
-            yield {"label": "(0)", "node": hex(nodefunc('0').node())}
+            yield {"label": "(0)", "node": hex(nodefunc('0').node()),"rev": 0}

-            for label, node in l:
-                yield {"label": label, "node": node}
+            for label, node,rev in l:
+                yield {"label": label, "node": node,"rev": rev}

-            yield {"label": "tip", "node": "tip"}
+            yield {"label": "tip", "node": "tip","rev": "tip"}
         except error.RepoError:
             pass


More information about the Mercurial-devel mailing list