branch.autosetupmerge: allow boolean values, or "all"

Junio noticed that switching on autosetupmerge unilaterally started
cluttering the config for local branches.  That is not the original
intention of branch.autosetupmerge, which was meant purely for
convenience when branching off of remote branches, but that semantics
got lost somewhere.

If you still want that "new" behavior, you can switch
branch.autosetupmerge to the value "all".  Otherwise, it is interpreted
as a boolean, which triggers setting up defaults _only_ when branching
off of a remote branch, i.e. the originally intended behavior.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Johannes Schindelin
2007-07-08 13:41:21 +01:00
committed by Junio C Hamano
parent b24f56d604
commit 4017761fd8
4 changed files with 28 additions and 9 deletions

View File

@ -148,6 +148,15 @@ test_expect_success 'test tracking setup via config' \
test $(git config branch.my3.remote) = local &&
test $(git config branch.my3.merge) = refs/heads/master'
test_expect_success 'autosetupmerge = all' '
git config branch.autosetupmerge true &&
git branch all1 master &&
test -z "$(git config branch.all1.merge)" &&
git config branch.autosetupmerge all &&
git branch all2 master &&
test $(git config branch.all2.merge) = refs/heads/master
'
test_expect_success 'test overriding tracking setup via --no-track' \
'git config branch.autosetupmerge true &&
git config remote.local.url . &&