Re: setting up tracking on push
- From
Jeff King <peff@peff.net>
- Date
- Mar 11, 2009, 02:04 UTC
- Message-ID
- <20090311020409.GA31365@coredump.intra.peff.net>
- In-Reply-To
- <76718490903101852y2c90e0abi8e0e4f71e6f0bc52@mail.gmail.com>
On Tue, Mar 10, 2009 at 09:52:44PM -0400, Jay Soffian wrote:
Show 13 quoted lines
> 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