branch --track: code cleanup and saner handling of local branches
This patch cleans up some complicated code, and replaces it with a cleaner version, using code from remote.[ch], which got extended a little in the process. This also enables us to fix two cases: The earlier "fix" to setup tracking only when the original ref started with "refs/remotes" is wrong. You are absolutely allowed to use a separate layout for your tracking branches. The correct fix, of course, is to set up tracking information only when there is a matching remote.<nick>.fetch line containing a colon. Another corner case was not handled properly. If two remotes write to the original ref, just warn the user and do not set up tracking. Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:

committed by
Junio C Hamano

parent
b42f69273b
commit
6f084a56fc
@ -309,10 +309,7 @@ branch.autosetupmerge::
|
||||
so that gitlink:git-pull[1] will appropriately merge from that
|
||||
remote branch. Note that even if this option is not set,
|
||||
this behavior can be chosen per-branch using the `--track`
|
||||
and `--no-track` options. This option can have values
|
||||
'false' (never touch the configuration), 'all' (do this
|
||||
for all branches), or 'true' (do this only when
|
||||
branching from a remote tracking branch), and defaults to 'true'.
|
||||
and `--no-track` options. This option defaults to false.
|
||||
|
||||
branch.<name>.remote::
|
||||
When in branch <name>, it tells `git fetch` which remote to fetch.
|
||||
|
@ -52,9 +52,8 @@ OPTIONS
|
||||
set up configuration so that git-pull will automatically
|
||||
retrieve data from the remote branch. Set the
|
||||
branch.autosetupmerge configuration variable to true if you
|
||||
want git-checkout and git-branch to behave as if
|
||||
'--track' were given when you branch from a remote
|
||||
tracking branch.
|
||||
want git-checkout and git-branch to always behave as if
|
||||
'--track' were given.
|
||||
|
||||
--no-track::
|
||||
When -b is given and a branch is created off a remote branch,
|
||||
|
Reference in New Issue
Block a user