From: Ilari Liusvaara Date: Tue, 16 Feb 2010 12:27:59 GMT Subject: Re: git fetch origin hanging in 1.7.0 Message-ID: <20100216122759.GA30898@Knoppix> In-Reply-To: <20100216151821.994ace31.rctay89@gmail.com> On Tue, Feb 16, 2010 at 03:18:21PM +0800, Tay Ray Chuan wrote: > NAK. This will only work if the given transport is git://. (My take > below.) > > > -- >8 -- > Subject: [PATCH] transport: add got_remote_refs flag > > tranport.c::transport_get_remote_refs() used to check > transport->remote_refs to determine whether transport->get_refs_list() > should be invoked. > > However, transport->remote_refs could evaluate to false (eg. if it is > NULL), causingo transport->get_refs_list() to be invoked unnecessarily. > > Introduce a flag, transport->got_remote_refs, and make > tranport.c::transport_get_remote_refs() check this flag rather than > evaluating transport->remote_refs. Seems to work even in external transport case (not suprising, as at this level, there's no difference between git://, ssh://, file:// and external transports). -Ilari