Re: [PATCH] remote.c: avoid O(n^2) behavior in match_push_refs by using string_list
- From
Junio C Hamano <gitster@pobox.com>
- Date
- Jul 3, 2013, 18:40 UTC
- Message-ID
- <7vhagbfpwz.fsf@alter.siamese.dyndns.org>
- In-Reply-To
- <CA+sFfMeDC=hc7QZhfSuQYsdBPzig5WANeTBhMxFZk=Pusq0QpA@mail.gmail.com>
Brandon Casey <drafnel@gmail.com> writes:
Show 8 quoted lines
> Right. For repos with few refs on either side, I don't think there > will be any measurable difference. When pushing a single ref to a > repo with a very large number of refs, we will see a very small net > loss for the time required to prepare the string list (which grows > linearly with the number of remote refs). After 2 or 3 refs, we > should see a net gain. > > So we're really just improving our worst case performance here.
... by penalizing the common case by how much? If it is not too much, then this obviously would be a good change.
> ... But, I don't see a down side to doing the lazy prepare in > the other loop too, and in fact, it looks like we may be able to avoid > building the string list when only explicit refspecs are used. So, > yeah, we should lazy build in both loops.
OK, so will see a reroll sometime?