[PATCH] transplant: add the transplanted revset predicate

Juan Pablo Aroztegi juanpablo.aroztegi at openbravo.com
Thu Sep 23 04:25:17 CDT 2010


# HG changeset patch
# User Juan Pablo Aroztegi <juanpablo.aroztegi at openbravo.com>
# Date 1285232806 -7200
# Node ID aa407243a1ec37bb035ea5e934cd9b8760598b9c
# Parent  1e2625fe371b3120fc6692e94a8323d593906302
transplant: add the transplanted revset predicate

diff --git a/hgext/transplant.py b/hgext/transplant.py
--- a/hgext/transplant.py
+++ b/hgext/transplant.py
@@ -17,6 +17,7 @@
 import os, tempfile
 from mercurial import bundlerepo, changegroup, cmdutil, hg, merge, match
 from mercurial import patch, revlog, util, error, discovery
+from mercurial import revset, help
 
 class transplantentry(object):
     def __init__(self, lnode, rnode):
@@ -603,6 +604,23 @@
             source.close()
             os.unlink(bundle)
 
+def revsettransplanted(repo, subset, x):
+    revset.getargs(x, 0, 0, _("transplanted takes no arguments"))
+    return [r for r in subset if repo[r].extra().get('transplant_source')]
+
+def revsetdoc():
+    doc = help.loaddoc('revsets')()
+    doc += _('\nAdded by the transplant extension:\n\n'
+           '``transplanted()``\n'
+           '  Changeset is transplanted.\n')
+    return doc
+
+def uisetup(ui):
+    'Add the transplanted revset predicate'
+    for i in (i for i, x in enumerate(help.helptable) if x[0] == ['revsets']):
+        help.helptable[i] = (['revsets'], _("Specifying Revision Sets"), revsetdoc)
+    revset.symbols['transplanted'] = revsettransplanted
+
 cmdtable = {
     "transplant":
         (transplant,



More information about the Mercurial-devel mailing list