Re: [RFC PATCH 1/2] git-branch: allow --track to work w/local branches
- From
Jay Soffian <jaysoffian@gmail.com>
- Date
- Feb 16, 2008, 07:07 UTC
- Message-ID
- <76718490802152307h37796d32tfccb7571d48a3221@mail.gmail.com>
- In-Reply-To
- <7v7ih5fpve.fsf@gitster.siamese.dyndns.org>
On Feb 16, 2008 12:10 AM, Junio C Hamano <gitster@pobox.com> wrote:
Show 15 quoted lines
> 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.
Show 13 quoted lines
> 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.