Re: [PATCH] checkout: tone down the "forked status" diagnostic messages
- From
Jeff King <peff@peff.net>
- Date
- Feb 21, 2008, 01:45 UTC
- Message-ID
- <20080221014513.GA7185@coredump.intra.peff.net>
- In-Reply-To
- <7vy79f2pqk.fsf_-_@gitster.siamese.dyndns.org>
On Wed, Feb 20, 2008 at 03:05:23PM -0800, Junio C Hamano wrote:
Show 13 quoted lines
> @@ -301,64 +301,88 @@ static void adjust_to_tracking(struct branch_info *new, struct checkout_opts *op > char *base; > unsigned char sha1[20]; > struct commit *ours, *theirs; > - const char *msgfmt; > char symmetric[84]; > - int show_log; > + struct rev_info revs; > + const char *rev_argv[10]; > + int rev_argc; > + int num_ours, num_theirs; > + const char *remote_msg; > struct branch *branch = branch_get(NULL);
Shouldn't this be branch_get(new->name)? branch_get calls read_config(), which caches the "current branch" information, so it's possible to end up with stale branch info. Try:
git clone git://git.kernel.org/pub/scm/git/git.git git checkout -b next origin/next
I get:
Branch next set up to track remote branch refs/remotes/origin/next. Switched to a new branch "next" Your branch is ahead of the tracked remote branch 'origin/master' by 76 commits.
Switching to master and then back to the already-created "next" works fine.
Even safer, I think, would be a way to invalidate the information cached in read_config when we change branches; this would fix it for any other callsites that look at the current branch from the same git invocation that changes the current branch.
Show 9 quoted lines
> + if (!num_theirs)
> + printf("Your branch is ahead of the tracked%s branch '%s' "
> + "by %d commit%s.\n",
> + remote_msg, base,
> + num_ours, (num_ours == 1) ? "" : "s");
> + else if (!num_ours)
> + printf("Your branch is behind of the tracked%s branch '%s' "
> + "by %d commit%s,\n"
> + "and can be fast-forwarded.\n",While not uncommon colloquially, "behind of" is not grammatically correct. "behind" is a preposition, so the "of" is redundant (it is necessary in the top string because "ahead" is an adverb).
-Peff