git-branch: rename config vars branch.<branch>.*, too

When renaming a branch, the corresponding config section should
be renamed, too.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <junkio@cox.net>
This commit is contained in:
Johannes Schindelin 2006-12-16 15:15:02 +01:00 коммит произвёл Junio C Hamano
Родитель 0667fcfb62
Коммит dc81c58cd6
2 изменённых файлов: 16 добавлений и 0 удалений

10
refs.c
Просмотреть файл

@ -867,6 +867,16 @@ int rename_ref(const char *oldref, const char *newref, const char *logmsg)
goto rollback; goto rollback;
} }
if (!strncmp(oldref, "refs/heads/", 11) &&
!strncmp(newref, "refs/heads/", 11)) {
char oldsection[1024], newsection[1024];
snprintf(oldsection, 1024, "branch.%s", oldref + 11);
snprintf(newsection, 1024, "branch.%s", newref + 11);
if (git_config_rename_section(oldsection, newsection) < 0)
return 1;
}
return 0; return 0;
rollback: rollback:

Просмотреть файл

@ -94,6 +94,8 @@ test_expect_failure \
git-branch r && git-branch r &&
git-branch -m q r/q' git-branch -m q r/q'
git-repo-config branch.s/s.dummy Hello
test_expect_success \ test_expect_success \
'git branch -m s/s s should work when s/t is deleted' \ 'git branch -m s/s s should work when s/t is deleted' \
'git-branch -l s/s && 'git-branch -l s/s &&
@ -104,6 +106,10 @@ test_expect_success \
git-branch -m s/s s && git-branch -m s/s s &&
test -f .git/logs/refs/heads/s' test -f .git/logs/refs/heads/s'
test_expect_success 'config information was renamed, too' \
"test $(git-repo-config branch.s.dummy) = Hello &&
! git-repo-config branch.s/s/dummy"
test_expect_failure \ test_expect_failure \
'git-branch -m u v should fail when the reflog for u is a symlink' \ 'git-branch -m u v should fail when the reflog for u is a symlink' \
'git-branch -l u && 'git-branch -l u &&