Michael J Gruber venit, vidit, dixit 20.03.2009 15:22: > 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? > Michael OK, 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 -- 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