On Mon, Mar 04, 2013 at 02:36:33PM -0800, Junio C Hamano wrote: > In ancient times, we used to disallow the same source ref to be > pushed to more than one places, e.g. "git push there master:master > master:naster" was disallowed. We later lifted this restriction > with db27ee63929f (send-pack: allow the same source to be pushed > more than once., 2005-08-06) and there no longer is anybody that > sets peer_ref for the source side of the ref list in the push > codepath since then. > > Remove one leftover no-op in a loop that iterates over the source > side of ref list (i.e. our local ref) to see if it can/should be > sent to a matching destination ref while skipping ones that is > marked with peer_ref (which will never exist, so we do not skip > anything). > > Signed-off-by: Junio C Hamano <gitster@xxxxxxxxx> This looks good to me. I was curious how difficult it would be to verify the "no longer is anybody that sets peer_ref" claim. It's actually quite easy. All of the call-sites just feed the result of get_local_heads(), which is easy to verify does not ever set peer_ref. Looking at the current code, I think you could even drop the "src" parameter and just have match_push_refs call get_local_heads() itself, though that does feel like a step backwards in terms of function generality. As an aside, I have always found the embedded "next" and "peer_ref" pointers in "struct ref" to be hacky. They are not properties of the ref at all, and the "refs to fetch" list would be more logically represented as a list of pairs of refs (and then I would not have to ever remember whether the peer is the local or remote ref in a given case). Probably not worth worrying about at this point, though, as the code fallout would be significant for little gain. -Peff -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html