Re: [PATCH v2] branch/checkout --track: Ensure that upstream branch is indeed a branch
- From
Martin von Zweigbergk <martin.von.zweigbergk@gmail.com>
- Date
- Feb 18, 2011, 00:45 UTC
- Message-ID
- <alpine.DEB.2.00.1102171937460.14950@debian>
- In-Reply-To
- <201102170012.20964.johan@herland.net>
On Thu, 17 Feb 2011, Johan Herland wrote:
Show 10 quoted lines
> When creating a new branch using the --track option, we must make sure that > we don't try to set an upstream that does not make sense to follow (using > 'git pull') or update (using 'git push'). The current code checks against > using HEAD as upstream (since tracking a symref doesn't make sense). However, > tracking a tag doesn't make sense either. Indeed, tracking _any_ ref that is > not a (local or remote) branch doesn't make sense, and should be disallowed. > > This patch achieves this by checking that the ref we're trying to --track > resides within refs/heads/* or refs/remotes/*. This new check replaces the > previous check against HEAD.
In some workflows (e.g. Linux kernel, IIRC), it is recommended to base your work on a tag. Is it worth considering that people might use a tag as upstream for such cases or would that be considered abuse of the "upstream" concept? It could make sense to set an upstream to point to a tag for reference and to be able to use e.g. 'rebase -i @{u}', 'git log @{u}..' and similar.
/Martin