[PATCH 2/2] Make local branches behave like remote branches when --tracked
- From
Michael J Gruber <git@drmicha.warpmail.net>
- Date
- Mar 26, 2009, 20:53 UTC
- Message-ID
- <1238100805-19619-3-git-send-email-git@drmicha.warpmail.net>
- In-Reply-To
- <1238100805-19619-2-git-send-email-git@drmicha.warpmail.net>
This makes sure that local branches, when followed using --track, behave the same as remote ones (e.g. differences being reported by git status and git checkout). This fixes 1 known failure.
Signed-off-by: Michael J Gruber <git@drmicha.warpmail.net> --- remote.c | 9 +++++---- t/t6040-tracking-info.sh | 2 +- 2 files changed, 6 insertions(+), 5 deletions(-)
diff --git a/remote.c b/remote.c index 2b037f1..5d2d7a1 100644 --- a/remote.c +++ b/remote.c @@ -1170,8 +1170,9 @@ struct branch *branch_get(const char *name) 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]); } } } @@ -1449,8 +1450,8 @@ int format_tracking_info(struct branch *branch, struct strbuf *sb) return 0; base = branch->merge[0]->dst; - if (!prefixcmp(base, "refs/remotes/")) { - base += strlen("refs/remotes/"); + if (!prefixcmp(base, "refs/")) { + base += strlen("refs/"); } if (!num_theirs) strbuf_addf(sb, "Your branch is ahead of '%s' " diff --git a/t/t6040-tracking-info.sh b/t/t6040-tracking-info.sh index 2a2b6b6..3d6db4d 100755 --- a/t/t6040-tracking-info.sh +++ b/t/t6040-tracking-info.sh @@ -58,7 +58,7 @@ test_expect_success 'checkout' ' grep "have 1 and 1 different" actual ' -test_expect_failure 'checkout with local tracked branch' ' +test_expect_success 'checkout with local tracked branch' ' git checkout master && git checkout follower >actual grep "is ahead of" actual
-- 1.6.2.1.507.g0e68d