branch --track: code cleanup and saner handling of local branches
authorJohannes Schindelin <Johannes.Schindelin@gmx.de>
Tue, 10 Jul 2007 17:50:44 +0000 (18:50 +0100)
committerJunio C Hamano <gitster@pobox.com>
Wed, 11 Jul 2007 23:03:58 +0000 (16:03 -0700)
commit6f084a56fcb3543d88d252bb49c1d2bbf2bd0cf3
tree00a572bf2d745f3d55a0b00d29682fb779cd5b04
parentb42f69273bf5ae2d5bb0c7479bfa9827e7b351ac
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>
Documentation/config.txt
Documentation/git-checkout.txt
builtin-branch.c
t/t3200-branch.sh