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:
Junio C Hamano
2009-02-08 23:27:10 -08:00
parent 8ea7ad694b
commit f8948e2fbc
4 changed files with 86 additions and 18 deletions

View File

@ -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 */