histedit: prevent parent guessed via --outgoing from being a revset (issue3770) stable
authorAugie Fackler <raf@durin42.com>
Wed, 30 Jan 2013 10:57:28 -0500
branchstable
changeset 18507 c795c9f87792
parent 18506 ef60083b5536
child 18508 813b7a1f7036
histedit: prevent parent guessed via --outgoing from being a revset (issue3770) If the binary hash of the parent node guessed via --outgoing happened to contain a special revset character (":" was specified in the bug), the revset parser would abort. Hexlifying the node before passing it to the revsingle call should fix that.
hgext/histedit.py
--- a/hgext/histedit.py	Wed Jan 30 19:40:07 2013 +0100
+++ b/hgext/histedit.py	Wed Jan 30 10:57:28 2013 -0500
@@ -454,8 +454,12 @@
         if revs:
             revs = [repo.lookup(rev) for rev in revs]
 
-        parent = discovery.findcommonoutgoing(
-            repo, other, [], force=opts.get('force')).missing[0:1]
+        # hexlify nodes from outgoing, because we're going to parse
+        # parent[0] using revsingle below, and if the binary hash
+        # contains special revset characters like ":" the revset
+        # parser can choke.
+        parent = [node.hex(n) for n in discovery.findcommonoutgoing(
+            repo, other, [], force=opts.get('force')).missing[0:1]]
     else:
         if opts.get('force'):
             raise util.Abort(_('--force only allowed with --outgoing'))