[PATCH] histedit: prevent parent guessed via --outgoing from being a revset (issue3770)

Augie Fackler raf at durin42.com
Wed Jan 30 10:00:00 CST 2013


This /feels/ like it'd be okay for the freeze, but then again it's not
a regression. I'm happy to push it myself post-freeze if that's the
right thing to do.

On Wed, Jan 30, 2013 at 10:58 AM, Augie Fackler <raf at durin42.com> 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.
>
> 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


More information about the Mercurial-devel mailing list