diff options
author | Junio C Hamano <gitster@pobox.com> | 2014-03-18 13:51:09 -0700 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2014-03-18 13:51:09 -0700 |
commit | 9cf0137bdf01d3fe4fdf4cd4b1ad605eebdfb1de (patch) | |
tree | 4186de735c0e3ffa117467e30b046fb22069f2c9 | |
parent | Merge branch 'jc/no-need-for-env-in-sh-scripts' (diff) | |
parent | branch: use skip_prefix() in install_branch_config() (diff) | |
download | tgif-9cf0137bdf01d3fe4fdf4cd4b1ad605eebdfb1de.tar.xz |
Merge branch 'bg/install-branch-config-skip-prefix'
* bg/install-branch-config-skip-prefix:
branch: use skip_prefix() in install_branch_config()
t3200-branch: test setting branch as own upstream
-rw-r--r-- | branch.c | 18 | ||||
-rwxr-xr-x | t/t3200-branch.sh | 10 |
2 files changed, 19 insertions, 9 deletions
@@ -1,3 +1,4 @@ +#include "git-compat-util.h" #include "cache.h" #include "branch.h" #include "refs.h" @@ -49,12 +50,11 @@ static int should_setup_rebase(const char *origin) void install_branch_config(int flag, const char *local, const char *origin, const char *remote) { - const char *shortname = remote + 11; - int remote_is_branch = starts_with(remote, "refs/heads/"); + const char *shortname = skip_prefix(remote, "refs/heads/"); struct strbuf key = STRBUF_INIT; int rebasing = should_setup_rebase(origin); - if (remote_is_branch + if (shortname && !strcmp(local, shortname) && !origin) { warning(_("Not setting branch %s as its own upstream."), @@ -77,29 +77,29 @@ void install_branch_config(int flag, const char *local, const char *origin, cons strbuf_release(&key); if (flag & BRANCH_CONFIG_VERBOSE) { - if (remote_is_branch && origin) + if (shortname && origin) printf_ln(rebasing ? _("Branch %s set up to track remote branch %s from %s by rebasing.") : _("Branch %s set up to track remote branch %s from %s."), local, shortname, origin); - else if (remote_is_branch && !origin) + else if (shortname && !origin) printf_ln(rebasing ? _("Branch %s set up to track local branch %s by rebasing.") : _("Branch %s set up to track local branch %s."), local, shortname); - else if (!remote_is_branch && origin) + else if (!shortname && origin) printf_ln(rebasing ? _("Branch %s set up to track remote ref %s by rebasing.") : _("Branch %s set up to track remote ref %s."), local, remote); - else if (!remote_is_branch && !origin) + else if (!shortname && !origin) printf_ln(rebasing ? _("Branch %s set up to track local ref %s by rebasing.") : _("Branch %s set up to track local ref %s."), local, remote); else - die("BUG: impossible combination of %d and %p", - remote_is_branch, origin); + die("BUG: impossible combination of %p and %p", + shortname, origin); } } diff --git a/t/t3200-branch.sh b/t/t3200-branch.sh index fcdb867748..83037b1cd9 100755 --- a/t/t3200-branch.sh +++ b/t/t3200-branch.sh @@ -507,6 +507,16 @@ EOF test_cmp expected actual ' +test_expect_success '--set-upstream-to notices an error to set branch as own upstream' ' + git branch --set-upstream-to refs/heads/my13 my13 2>actual && + cat >expected <<-\EOF && + warning: Not setting branch my13 as its own upstream. + EOF + test_expect_code 1 git config branch.my13.remote && + test_expect_code 1 git config branch.my13.merge && + test_i18ncmp expected actual +' + # Keep this test last, as it changes the current branch cat >expect <<EOF $_z40 $HEAD $GIT_COMMITTER_NAME <$GIT_COMMITTER_EMAIL> 1117150200 +0000 branch: Created from master |