checkout: updates to tracking report
Ask branch_get() for the new branch explicitly instead of letting it return a potentially stale information. Tighten the logic to find the tracking branch to deal better with misconfigured repositories (i.e. branch.*.merge can exist but it may not have a refspec that fetches to .it) Also fixes grammar in a message, as pointed out by Jeff King. The function is about reporting and not automatically fast-forwarding to the upstream, so stop calling it "adjust-to". Signed-off-by: Junio C Hamano <gitster@pobox.com> Acked-by: Daniel Barkalow <barkalow@iabervon.org>
This commit is contained in:
@ -289,7 +289,7 @@ static int merge_working_tree(struct checkout_opts *opts,
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void adjust_to_tracking(struct branch_info *new, struct checkout_opts *opts)
|
static void report_tracking(struct branch_info *new, struct checkout_opts *opts)
|
||||||
{
|
{
|
||||||
/*
|
/*
|
||||||
* We have switched to a new branch; is it building on
|
* We have switched to a new branch; is it building on
|
||||||
@ -305,13 +305,13 @@ static void adjust_to_tracking(struct branch_info *new, struct checkout_opts *op
|
|||||||
int rev_argc;
|
int rev_argc;
|
||||||
int num_ours, num_theirs;
|
int num_ours, num_theirs;
|
||||||
const char *remote_msg;
|
const char *remote_msg;
|
||||||
struct branch *branch = branch_get(NULL);
|
struct branch *branch = branch_get(new->name);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Nothing to report unless we are marked to build on top of
|
* Nothing to report unless we are marked to build on top of
|
||||||
* somebody else.
|
* somebody else.
|
||||||
*/
|
*/
|
||||||
if (!branch || !branch->merge)
|
if (!branch || !branch->merge || !branch->merge[0] || !branch->merge[0]->dst)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -369,7 +369,7 @@ static void adjust_to_tracking(struct branch_info *new, struct checkout_opts *op
|
|||||||
remote_msg, base,
|
remote_msg, base,
|
||||||
num_ours, (num_ours == 1) ? "" : "s");
|
num_ours, (num_ours == 1) ? "" : "s");
|
||||||
else if (!num_ours)
|
else if (!num_ours)
|
||||||
printf("Your branch is behind of the tracked%s branch '%s' "
|
printf("Your branch is behind the tracked%s branch '%s' "
|
||||||
"by %d commit%s,\n"
|
"by %d commit%s,\n"
|
||||||
"and can be fast-forwarded.\n",
|
"and can be fast-forwarded.\n",
|
||||||
remote_msg, base,
|
remote_msg, base,
|
||||||
@ -425,7 +425,7 @@ static void update_refs_for_switch(struct checkout_opts *opts,
|
|||||||
remove_branch_state();
|
remove_branch_state();
|
||||||
strbuf_release(&msg);
|
strbuf_release(&msg);
|
||||||
if (!opts->quiet && (new->path || !strcmp(new->name, "HEAD")))
|
if (!opts->quiet && (new->path || !strcmp(new->name, "HEAD")))
|
||||||
adjust_to_tracking(new, opts);
|
report_tracking(new, opts);
|
||||||
}
|
}
|
||||||
|
|
||||||
static int switch_branches(struct checkout_opts *opts, struct branch_info *new)
|
static int switch_branches(struct checkout_opts *opts, struct branch_info *new)
|
||||||
|
Reference in New Issue
Block a user