[PATCH] histedit: prevent parent guessed via --outgoing from being a revset (issue3770)
Matt Mackall
mpm at selenic.com
Wed Jan 30 20:25:03 UTC 2013
On Wed, 2013-01-30 at 10:58 -0500, Augie Fackler wrote:
> # HG changeset patch
> # User Augie Fackler <raf at durin42.com>
> # Date 1359561448 18000
> # Branch stable
> # Node ID d2de19a50f101734629c8c4d05b91780c0d7fe13
> # Parent 692cbda1eb50fe30c70792cb1e9380b28769467c
> 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.
This looks fine. We generally prefer list comprehensions to map these
days, but post-2.5, the outgoing() revset approach is probably the
answer so we can put this in as-is.
> diff --git a/hgext/histedit.py b/hgext/histedit.py
> --- a/hgext/histedit.py
> +++ b/hgext/histedit.py
> @@ -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 = map(node.hex, discovery.findcommonoutgoing(
> + repo, other, [], force=opts.get('force')).missing[0:1])
> else:
> if opts.get('force'):
> raise util.Abort(_('--force only allowed with --outgoing'))
> _______________________________________________
> Mercurial-devel mailing list
> Mercurial-devel at selenic.com
> http://selenic.com/mailman/listinfo/mercurial-devel
--
Mathematics is the supreme nostalgia of our time.
More information about the Mercurial-devel
mailing list