X-Git-Url: http://www.git.stargrave.org/?a=blobdiff_plain;f=lib%2FPublicInbox%2FSolverGit.pm;h=24d9da2f42b14ff8a89344321dba2e5daa1c7d00;hb=eb522a29e437eda6de0d50c739d73f9e9ec4adbc;hp=39acbe414285f3410d727873844734191e635911;hpb=a6f2d5b61e37a49d8278b250d172b497a88c2b45;p=public-inbox.git diff --git a/lib/PublicInbox/SolverGit.pm b/lib/PublicInbox/SolverGit.pm index 39acbe41..24d9da2f 100644 --- a/lib/PublicInbox/SolverGit.pm +++ b/lib/PublicInbox/SolverGit.pm @@ -439,6 +439,9 @@ sub resolve_patch ($$) { # see if we can find the blob in an existing git repo: my $cur_want = $want->{oid_b}; + if ($self->{seen_oid}->{$cur_want}++) { + die "Loop detected solving $cur_want\n"; + } if (my $existing = solve_existing($self, $want)) { dbg($self, "found $cur_want in " . join("\n", $existing->[0]->pub_urls)); @@ -504,6 +507,7 @@ sub solve ($$$$$) { $self->{oid_want} = $oid_want; $self->{out} = $out; + $self->{seen_oid} = {}; $self->{tot} = 0; $self->{psgi_env} = $env; $self->{todo} = [ { %$hints, oid_b => $oid_want } ];