Re: Tracking of local branches
- From
Michael J Gruber <git@drmicha.warpmail.net>
- Date
- Mar 20, 2009, 16:13 UTC
- Message-ID
- <49C3C0AF.6090806@drmicha.warpmail.net>
- In-Reply-To
- <49C3A6AE.7020104@drmicha.warpmail.net>
Michael J Gruber venit, vidit, dixit 20.03.2009 15:22:
Show 46 quoted lines
> Hi there,
>
> me again. In connection with Dscho's recent patch which rang the bell on
> tracked branches I noticed that local branches are treated somewhat
> inconsistently by git. There are 2 ways to fix it, and I ask you for
> your input on which one to choose.
>
> First of all:
> The documentation seems to imply that it's okay to follow local
> branches, i.e. to have tracked local branches. Specifically, the option
> --track allows setting up tracking info (branch.foo.merge) in cases
> where it's not set up automatically (it is when you branch off a remote
> tracking branch).
>
> If it's not OK to say "git checkout -b newbranch --track local" when
> local is a local branch you can stop reading here and tell me to stop
> writing...
>
> Now, assuming it's okay to have a local branch being tracked, the
> current situation is:
>
> git fetch/pull is okay (respects the setting)
> git status/checkout/rev-parse BEL is not (acts as if there is no
> tracking info)
>
> I think I have tracked it down (pun intended) to the fact that one sort
> of commands looks at the struct member branch->merge, the other at
> branch->merge_name. The latter is set for branches which follow
> something, the former only for followers of remote branches.
>
> I semi-successfully messed around in remote.c (format_tracking_info(),
> stat_tracking_info()) to make it use branch->merge_name rather than
> branch->merge. This makes "git status" work as expected ("Your branch
> is... severely screwed.") for tracked local branches. (It's messed up
> for remote ones but hey it was a first shot; merge[0]->dst is really
> needed here I guess.)
>
> Now I could go after sha1_name.c and do the same,
>
> OR
>
> make it so that all branches have their merge member set up, uhm. Any
> possible side effects?
>
> What do you think?
> MichaelOK, I think I got this working with approach 2 above. All existing tests pass. Now I'll cook up tests which only my new code passes ;) But that may take a few days.
Michael