[Resolution] Add smart backtracking

I'd like to know if there are any performance shortcuts that are obvious here, @floere.

I'd also really appreciate testing this out on some `Podfile`s with resolvable conflicts to make sure the speed increase is real, @kylef @alloy. (I discovered this optimization working with bundler code)

\c @indirect
Andre covered it :)

-Samuel E. Giddins

On Nov 8, 2014, at 7:31 PM, Kyle Fuller <notifications@github.com> wrote:

In lib/molinillo/resolution.rb:

> @@ -194,7 +210,8 @@ def create_conflict
>          }
>          vertex.incoming_edges.each { |edge| (requirements[edge.origin.payload] ||= []).unshift(*edge.requirements) }
>          conflicts[name] = Conflict.new(
> -          requirements,
> +          requirement,
> +          Hash[requirements.select { |_, r| !r.empty? }],
That's fine, I was just confirming so I knew we was supporting 1.8 here :)

—
Reply to this email directly or view it on GitHub.