On Tue, Mar 10, 2009 at 09:52:44PM -0400, Jay Soffian wrote: > Maybe a new switch, say -u for update: > > -u --track [<branch>] <upstream> > > Update tracking information for an existing branch. <branch> is > optional and defaults to the current branch. <upstream> is the branch > you wish to track, e.g. origin/master; normally <upstream> is a remote > tracking branch, but specifying a local branch is valid as well. > > -u --no-track [<branch>] > > Remove tracking information for an existing branch. <branch> is > optional and defaults to the current branch. Hmm. This seems not quite right to me. Specifically: 1. Would you ever want to use "-u" without "--track"? If so, then why are they two separate options? 2. In your example, if I give only a single non-option argument, it is interpreted as the upstream (and presumably the branch defaults to HEAD). But in other branch commands, it is interpreted as the branch, and the upstream defaults to HEAD. For (1), you could just have a single option. Unfortunately --track is taken. But maybe you could do --track=. And that helps with (2), as well, since this syntax would only ever have one or zero arguments. And then you can default zero to HEAD. IOW: # track origin/master with the current branch git branch --track=origin/master # track origin/master with a different branch git branch --track=origin/master other_branch # stop tracking git branch --track= The only two problems I can think of are: 1. It is perhaps a little confusing that --track= means "don't do the normal branch operation, but instead do this totally different thing. Of course we already have a similar situation with "-m", but it is perhaps more confusing since "--track" and "--track=" have totally different semantics. 2. This would be the only branch command to operate on HEAD if given no argument. That isn't necessary for this proposal, but I think it makes it nicer to use. An alternative would be for git-branch to resolve symrefs (which would also be nice for "git branch -m HEAD foo"). -Peff -- 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