Comments
Patch
@@ -6,7 +6,7 @@
'''commands to sign and verify changesets'''
import os, tempfile, binascii
-from mercurial import util, commands, match, cmdutil
+from mercurial import util, commands, match, cmdutil, localrepo
from mercurial import node as hgnode
from mercurial.i18n import _
@@ -293,3 +293,23 @@
return "%s\n" % hgnode.hex(node)
else:
raise util.Abort(_("unknown signature version"))
+
+def reposetup(ui, repo):
+ class gpgrepo(repo.__class__):
+ @localrepo.unfilteredpropertycache
+ def signs(self):
+ sigs = {}
+ for data, context in sigwalk(repo):
+ node, version, sig = data
+ fn, ln = context
+ try:
+ n = repo.lookup(node)
+ except KeyError:
+ ui.warn(_("%s:%d node does not exist\n") % (fn, ln))
+ continue
+ sigs.setdefault(n, [])
+ sigs[n].extend([(data, context)])
+ return sigs
+
+ if repo.local():
+ repo.__class__ = gpgrepo