On Mon, Mar 28, 2011 at 03:22:57PM +0800, Tay Ray Chuan wrote: > Hi, > > On Sun, Mar 27, 2011 at 4:24 PM, Mike Hommey <mh@xxxxxxxxxxxx> wrote: > > But when the helper returns a '?' value to the list command, I don't see > > how things are supposed to be updated. It looks like the helper is > > the only one, then, to be able to update the refs. But it also doesn't > > have any way to know which refs it needs to update... > > I don't think that's right. The transport machinery (transport.c, > transport-helper.c) in git is the one who calls the shots - the > transport machinery first 1) asks for the list of refs, 2) does the > appropriate "matching" (of what refs to fetch/push), then 3) sends > this down to the remote helper. > > If the remote helper sends back a '?', the transport machinery should > be implemented to fail and die. A quick scan of transport.c does not > show this, but I assume the failure would happen at the ref matching > level, leading to failure of the whole fetch/push. Failing wouldn't make sense. That'd mean '?' may not be used by remote-helpers, and that they'd need to grab everything from the remote before git even decides what to grab. Mike -- 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