hg site extension
 
(Arne Babenhauserheide)
2014-05-18: fix API breakage (changesettemplater now takes a tmpl argument).

fix API breakage (changesettemplater now takes a tmpl argument).

diff --git a/staticsite.py b/staticsite.py
--- a/staticsite.py
+++ b/staticsite.py
@@ -729,11 +729,20 @@ def parsereadme(filepath, truncated=Fals
     except ImportError:
         return "<pre markdown=\"1\" style=\"white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;\">" + text + "</pre>"
 
+def simpletemplater(ui, repo, tmpl):
+    """Get a simple templater, resolving API changes on the way."""
+    # TODO: first check for 3.x, then for older versions. Requires checking the error in old versions.
+    try:
+        t = cmdutil.changeset_templater(ui, repo, patch=False, diffopts=None, mapfile=None, buffered=False)
+        t.use_template(tmpl)
+    except TypeError: # 3.0?
+        t = cmdutil.changeset_templater(ui, repo, patch=False, diffopts=None, tmpl=tmpl, mapfile=None, buffered=False)
+    return t
+
 def overviewlogstring(ui, repo, revs, template=templates["commitlog"]): 
     """Get the string for a log of the given revisions for the overview page."""
     ui.pushbuffer()
-    t = cmdutil.changeset_templater(ui, repo, patch=False, diffopts=None, mapfile=None, buffered=False)
-    t.use_template(template.replace("{relativepath}", ""))
+    t = simpletemplater(ui, repo, template.replace("{relativepath}", ""))
     for c in revs:
         ctx = repo.changectx(c)
         t.show(ctx)
@@ -802,13 +811,14 @@ def writeoverview(ui, repo, target, name
             overview += "</div>"
             break
     
+
+    
     ui.debug("[staticsite] writeoverview: shortlog\n")
     # now add the 5 most recent log entries
     # divert all following ui output to a string, so we can just use standard functions
     overview += "\n<div id='shortlog'><h2>Changes (<a href='commits'>full changelog</a>)</h2>\n"
     ui.pushbuffer()
-    t = cmdutil.changeset_templater(ui, repo, patch=False, diffopts=None, mapfile=None, buffered=False)
-    t.use_template(templates["commitlog"].replace("{relativepath}", ""))
+    t = simpletemplater(ui, repo, templates["commitlog"].replace("{relativepath}", ""))
     for c in range(1, min(len(repo.changelog), 5)):
         ctx = repo.changectx(str(-c))
         t.show(ctx)
@@ -895,8 +905,7 @@ def writelog(ui, repo, target, name):
             os.makedirs(d)
             
     # create the log files
-    t = cmdutil.changeset_templater(ui, repo, patch=False, diffopts=None, mapfile=None, buffered=False)
-    t.use_template(templates["commitlog"].replace("{relativepath}", "../"))
+    t = simpletemplater(ui, repo, templates["commitlog"].replace("{relativepath}", "../"))
     logs = []
     for ck in range(len(repo.changelog)/100+1):
         ui.pushbuffer()
@@ -1076,8 +1085,7 @@ def getforkdata(ui, repo, target, name, 
                     "{relpath}", "../../")
         
     # prepare the log templater
-    t = cmdutil.changeset_templater(ui, repo, patch=False, diffopts=None, mapfile=None, buffered=False)
-    t.use_template(templates["commitlog"].replace(
+    t = simpletemplater(ui, repo, templates["commitlog"].replace(
             "{relativepath}", "../../"))
     
     # Add incoming commits
@@ -1148,8 +1156,7 @@ def writecommitsforchlist(ui, repo, targ
     if not os.path.isdir(commit):
         os.makedirs(commit)
     
-    t = cmdutil.changeset_templater(ui, repo, patch=False, diffopts=None, mapfile=None, buffered=False)
-    t.use_template(templates["commitlog"].replace("{relativepath}", "../"))
+    t = simpletemplater(ui, repo, templates["commitlog"].replace("{relativepath}", "../"))
 
     for c in chlist:
         ctx = repo.changectx(str(c))