Skip to content

Commit ccc852c

Browse files
committed
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
2 parents 87d2062 + 5e6e2b4 commit ccc852c

File tree

2 files changed

+14
-3
lines changed

2 files changed

+14
-3
lines changed

remote.c

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1170,8 +1170,9 @@ struct branch *branch_get(const char *name)
11701170
for (i = 0; i < ret->merge_nr; i++) {
11711171
ret->merge[i] = xcalloc(1, sizeof(**ret->merge));
11721172
ret->merge[i]->src = xstrdup(ret->merge_name[i]);
1173-
remote_find_tracking(ret->remote,
1174-
ret->merge[i]);
1173+
if (remote_find_tracking(ret->remote, ret->merge[i])
1174+
&& !strcmp(ret->remote_name, "."))
1175+
ret->merge[i]->dst = xstrdup(ret->merge_name[i]);
11751176
}
11761177
}
11771178
}
@@ -1451,6 +1452,8 @@ int format_tracking_info(struct branch *branch, struct strbuf *sb)
14511452
base = branch->merge[0]->dst;
14521453
if (!prefixcmp(base, "refs/remotes/")) {
14531454
base += strlen("refs/remotes/");
1455+
} else if (!prefixcmp(base, "refs/heads/")) {
1456+
base += strlen("refs/heads/");
14541457
}
14551458
if (!num_theirs)
14561459
strbuf_addf(sb, "Your branch is ahead of '%s' "

t/t6040-tracking-info.sh

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,9 @@ test_expect_success setup '
2929
git checkout -b b4 origin &&
3030
advance e &&
3131
advance f
32-
)
32+
) &&
33+
git checkout -b follower --track master &&
34+
advance g
3335
'
3436

3537
script='s/^..\(b.\)[ 0-9a-f]*\[\([^]]*\)\].*/\1 \2/p'
@@ -56,6 +58,12 @@ test_expect_success 'checkout' '
5658
grep "have 1 and 1 different" actual
5759
'
5860

61+
test_expect_success 'checkout with local tracked branch' '
62+
git checkout master &&
63+
git checkout follower >actual
64+
grep "is ahead of" actual
65+
'
66+
5967
test_expect_success 'status' '
6068
(
6169
cd test &&

0 commit comments

Comments
 (0)