From: Junio C Hamano Date: Mon, 6 Apr 2009 07:42:31 +0000 (-0700) Subject: Merge branch 'mg/tracked-local-branches' X-Git-Tag: v1.6.3-rc0~31 X-Git-Url: https://git.lorimer.id.au/gitweb.git/diff_plain/ccc852c37751c7bc8f81bfb71e6722291270bca5?ds=inline;hp=-c Merge branch 'mg/tracked-local-branches' * mg/tracked-local-branches: Make local branches behave like remote branches when --tracked Test for local branches being followed with --track --- ccc852c37751c7bc8f81bfb71e6722291270bca5 diff --combined remote.c index 2b037f11b2,30d7fdec83..d12140e0fe --- a/remote.c +++ b/remote.c @@@ -1170,8 -1170,9 +1170,9 @@@ struct branch *branch_get(const char *n for (i = 0; i < ret->merge_nr; i++) { ret->merge[i] = xcalloc(1, sizeof(**ret->merge)); ret->merge[i]->src = xstrdup(ret->merge_name[i]); - remote_find_tracking(ret->remote, - ret->merge[i]); + if (remote_find_tracking(ret->remote, ret->merge[i]) + && !strcmp(ret->remote_name, ".")) + ret->merge[i]->dst = xstrdup(ret->merge_name[i]); } } } @@@ -1401,10 -1402,9 +1402,10 @@@ int stat_tracking_info(struct branch *b if (theirs == ours) return 0; - /* Run "rev-list --left-right ours...theirs" internally... */ + /* Run "rev-list --no-merges --left-right ours...theirs" internally... */ rev_argc = 0; rev_argv[rev_argc++] = NULL; + rev_argv[rev_argc++] = "--no-merges"; rev_argv[rev_argc++] = "--left-right"; rev_argv[rev_argc++] = symmetric; rev_argv[rev_argc++] = "--"; @@@ -1451,6 -1451,8 +1452,8 @@@ int format_tracking_info(struct branch base = branch->merge[0]->dst; if (!prefixcmp(base, "refs/remotes/")) { base += strlen("refs/remotes/"); + } else if (!prefixcmp(base, "refs/heads/")) { + base += strlen("refs/heads/"); } if (!num_theirs) strbuf_addf(sb, "Your branch is ahead of '%s' "