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.
--- 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'))