[PATCH evolve] evolve: fix createmarkers() wrapper to accept an iterable
Pierre-Yves David
pierre-yves.david at ens-lyon.org
Thu Jun 5 18:20:38 CDT 2014
Pushed, thanks!
(please next time use "evolve-ext" instead of "evolve" as a flag)
On 06/05/2014 03:09 PM, Greg Ward wrote:
> # HG changeset patch
> # User Greg Ward <greg at gerg.ca>
> # Date 1402006059 14400
> # Thu Jun 05 18:07:39 2014 -0400
> # Branch stable
> # Node ID 12a3fc661230a3d4afb9515ac15222c60b661bc6
> # Parent fc7ca26f74915c371f9cf2f1cfca85206edb7f55
> evolve: fix createmarkers() wrapper to accept an iterable
>
> Docstring in mercurial.obsolete says "<relations> must be an iterable
> of ...", and hgsubversion takes it at its word and passes a generator.
> Until around Mercurial 3.0, this did not cause any problems, but now
> it does: in a repo with both evolve and hgsubversion enabled, pushing
> to Subversion when obsolete changesets are present causes a crash:
>
> [...]
> File "/home/gward/src/hgsubversion/hgsubversion/wrappers.py", line 346, in push
> obsolete.createmarkers(repo, relations)
> File "/home/gward/src/hg-stable/mercurial/extensions.py", line 196, in wrap
> return wrapper(origfn, *args, **kwargs)
> File "/home/gward/src/hg-evolve/hgext/evolve.py", line 332, in _createmarkers
> relations[idx] = (prec, sucs, meta)
> TypeError: 'generator' object does not support item assignment
>
> Since hgsubersion is playing by the documented rules, evolve must be
> the guilty party here.
>
> diff --git a/hgext/evolve.py b/hgext/evolve.py
> --- a/hgext/evolve.py
> +++ b/hgext/evolve.py
> @@ -331,6 +331,7 @@
> # every time this test is run, a kitten is slain.
> # Change it as soon as possible
> if '[,{metadata}]' in orig.__doc__:
> + relations = list(relations)
> for idx, rel in enumerate(relations):
> prec = rel[0]
> sucs = rel[1]
> _______________________________________________
> Mercurial-devel mailing list
> Mercurial-devel at selenic.com
> http://selenic.com/mailman/listinfo/mercurial-devel
>
--
Pierre-Yves David
More information about the Mercurial-devel
mailing list