# HG changeset patch # User mpm@selenic.com # Date 1117168625 28800 # Node ID e9b1147db4488da582e74a99c920bb96973e74a7 # Parent 75dddd697ed4b89e4161996b0c75ff3c5dfd0125 hgweb: alternating colors for multifile diffs diff --git a/mercurial/hgweb.py b/mercurial/hgweb.py --- a/mercurial/hgweb.py +++ b/mercurial/hgweb.py @@ -142,7 +142,16 @@ class hgweb: l += [ x for x in list if x.startswith(f) ] return l - def prettyprint(diff): + parity = [0] + def diffblock(diff, f, fn): + yield self.t("diffblock", + lines = prettyprintlines(diff), + parity = parity[0], + file = f, + filenode = hex(fn)) + parity[0] = 1 - parity[0] + + def prettyprintlines(diff): for l in diff.splitlines(1): line = cgi.escape(l) if line.startswith('+'): @@ -170,15 +179,15 @@ class hgweb: for f in c: to = r.file(f).read(mmap1[f]) tn = r.file(f).read(mmap2[f]) - yield prettyprint(mdiff.unidiff(to, date1, tn, date2, f)) + yield diffblock(mdiff.unidiff(to, date1, tn, date2, f), f, tn) for f in a: to = "" tn = r.file(f).read(mmap2[f]) - yield prettyprint(mdiff.unidiff(to, date1, tn, date2, f)) + yield diffblock(mdiff.unidiff(to, date1, tn, date2, f), f, tn) for f in d: to = r.file(f).read(mmap1[f]) tn = "" - yield prettyprint(mdiff.unidiff(to, date1, tn, date2, f)) + yield diffblock(mdiff.unidiff(to, date1, tn, date2, f), f, tn) def header(self): yield self.t("header", repo = self.reponame) diff --git a/templates/changeset.tmpl b/templates/changeset.tmpl --- a/templates/changeset.tmpl +++ b/templates/changeset.tmpl @@ -34,7 +34,7 @@ #desc# -
+
 #diff#
 
diff --git a/templates/filediff.tmpl b/templates/filediff.tmpl --- a/templates/filediff.tmpl +++ b/templates/filediff.tmpl @@ -23,7 +23,7 @@ #p1# -
+
 #diff#
 
diff --git a/templates/header.tmpl b/templates/header.tmpl --- a/templates/header.tmpl +++ b/templates/header.tmpl @@ -5,9 +5,9 @@ Content-type: text/html