hgweb: simplify branches with repo.branchmap().iterbranches()
authorBrodie Rao <brodie@sf.io>
Mon, 16 Sep 2013 01:08:29 -0700
changeset 20194 9985e188d940
parent 20193 7d40e706412c
child 20195 4274eda143cb
hgweb: simplify branches with repo.branchmap().iterbranches()
mercurial/hgweb/webcommands.py
--- a/mercurial/hgweb/webcommands.py	Mon Sep 16 01:08:29 2013 -0700
+++ b/mercurial/hgweb/webcommands.py	Mon Sep 16 01:08:29 2013 -0700
@@ -537,18 +537,18 @@
     tips = []
     heads = web.repo.heads()
     parity = paritygen(web.stripecount)
-    sortkey = lambda ctx: (not ctx.closesbranch(), ctx.rev())
+    sortkey = lambda item: (not item[1], item[0].rev())
 
     def entries(limit, **map):
         count = 0
         if not tips:
-            for t, n in web.repo.branchtags().iteritems():
-                tips.append(web.repo[n])
-        for ctx in sorted(tips, key=sortkey, reverse=True):
+            for tag, hs, tip, closed in web.repo.branchmap().iterbranches():
+                tips.append((web.repo[tip], closed))
+        for ctx, closed in sorted(tips, key=sortkey, reverse=True):
             if limit > 0 and count >= limit:
                 return
             count += 1
-            if not web.repo.branchheads(ctx.branch()):
+            if closed:
                 status = 'closed'
             elif ctx.node() not in heads:
                 status = 'inactive'