On Feb 16, 2008 12:10 AM, Junio C Hamano <gitster@xxxxxxxxx> wrote: > Although I am not so familiar with this area, the patch somehow > did not feel right, so I ended up doing a bit of digging. > > After the context of the patch, we have this: > > if (tracking.matches == 1) { > sprintf(key, "branch.%s.remote", new_ref); > git_config_set(key, tracking.remote ? tracking.remote : "."); > sprintf(key, "branch.%s.merge", new_ref); > git_config_set(key, tracking.src); > > So it looks to me that the code already has intention to set the > "branch.*.remote" variable to "." when certain condition is met. > And the condition is "when tracking.remote is NULL, or it is > already a dot". I was confused by the use of the ternary operator. I couldn't figure out how tracking.remote could be NULL. I chalked it up to bit-rot but them forget to mention that in my email. I'm glad you took another look, but I still don't understand how tracking.remote can be NULL and tracking.matches == 1. > So if there is a remote whose name is "." (or NULL, but I do not > know when that can happen --- remote.c::make_remote() does not > allow creating such a remote as far as I can tell), that would > be found without the added extra code, wouldn't it? > > I did a bit of experiment and with this in .git/config: > > [remote "."] > fetch = refs/*:refs/* > > it turns out that you do not have to patch the code at all. The > above manual configuration feels somewhat like an ugly hack but > perhaps we should make the above two lines implied? Hmm, that just causes tracking.remote to be set to ".", not to NULL? Right? j. - 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