remote prune: warn dangling symrefs
If you prune from the remote "frotz" that deleted the ref your tracking branch remotes/frotz/HEAD points at, the symbolic ref will become dangling. We used to detect this as an error condition and issued a message every time refs are enumerated. This stops the error message, but moves the warning to "remote prune". Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
@ -756,12 +756,17 @@ static int prune(int argc, const char **argv)
|
||||
OPT_END()
|
||||
};
|
||||
struct ref_states states;
|
||||
const char *dangling_msg;
|
||||
|
||||
argc = parse_options(argc, argv, options, builtin_remote_usage, 0);
|
||||
|
||||
if (argc < 1)
|
||||
usage_with_options(builtin_remote_usage, options);
|
||||
|
||||
dangling_msg = (dry_run
|
||||
? " %s will become dangling!\n"
|
||||
: " %s has become dangling!\n");
|
||||
|
||||
memset(&states, 0, sizeof(states));
|
||||
for (; argc; argc--, argv++) {
|
||||
int i;
|
||||
@ -784,6 +789,7 @@ static int prune(int argc, const char **argv)
|
||||
|
||||
printf(" * [%s] %s\n", dry_run ? "would prune" : "pruned",
|
||||
abbrev_ref(refname, "refs/remotes/"));
|
||||
warn_dangling_symref(dangling_msg, refname);
|
||||
}
|
||||
|
||||
/* NEEDSWORK: free remote */
|
||||
|
||||
Reference in New Issue
Block a user