Merge branch 'bg/install-branch-config-skip-prefix'
authorJunio C Hamano <gitster@pobox.com>
Tue, 18 Mar 2014 20:51:09 +0000 (13:51 -0700)
committerJunio C Hamano <gitster@pobox.com>
Tue, 18 Mar 2014 20:51:09 +0000 (13:51 -0700)
* bg/install-branch-config-skip-prefix:
branch: use skip_prefix() in install_branch_config()
t3200-branch: test setting branch as own upstream

1  2 
branch.c
diff --combined branch.c
index 05feaff78ae20ee58cafbb08ff04aa811669d812,e163f3ca6406c5b7e01f3fec4b52ef9c8bba73fa..8eecb1d8c08b9793399b7eb834b2529c590b9a20
+++ b/branch.c
@@@ -1,3 -1,4 +1,4 @@@
+ #include "git-compat-util.h"
  #include "cache.h"
  #include "branch.h"
  #include "refs.h"
@@@ -49,12 -50,11 +50,11 @@@ static int should_setup_rebase(const ch
  
  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."),
        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);
        }
  }
  
@@@ -114,6 -114,10 +114,6 @@@ static int setup_tracking(const char *n
        struct tracking tracking;
        int config_flags = quiet ? 0 : BRANCH_CONFIG_VERBOSE;
  
 -      if (strlen(new_ref) > 1024 - 7 - 7 - 1)
 -              return error(_("Tracking not set up: name too long: %s"),
 -                              new_ref);
 -
        memset(&tracking, 0, sizeof(tracking));
        tracking.spec.dst = (char *)orig_ref;
        if (for_each_remote(find_tracked_branch, &tracking))