diff options
author | Olivier Marin <dkr@freesurf.fr> | 2008-06-10 16:51:35 +0200 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2008-06-10 23:17:41 -0700 |
commit | 8d7679276af861b44e307c9879f6c4774f4944fc (patch) | |
tree | 3c60781578380ecd638465e57c7dbd32b5ef1cec /builtin-remote.c | |
parent | 67a7e2d07162dc470f7e3ae1889aad146e5b7917 (diff) | |
download | git-8d7679276af861b44e307c9879f6c4774f4944fc.tar.gz |
remote prune: print the list of pruned branches
This command is really too quiet which make it unconfortable to use.
Also implement a --dry-run option, in place of the original -n one, to
list stale tracking branches that will be pruned, but do not actually
prune them.
Add a test case for --dry-run.
Signed-off-by: Olivier Marin <dkr@freesurf.fr>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'builtin-remote.c')
-rw-r--r-- | builtin-remote.c | 20 |
1 files changed, 16 insertions, 4 deletions
diff --git a/builtin-remote.c b/builtin-remote.c index 745a4ee6c5..6bce55cd53 100644 --- a/builtin-remote.c +++ b/builtin-remote.c @@ -523,10 +523,10 @@ static int show(int argc, const char **argv) static int prune(int argc, const char **argv) { - int no_query = 0, result = 0; + int dry_run = 0, result = 0; struct option options[] = { OPT_GROUP("prune specific options"), - OPT_BOOLEAN('n', NULL, &no_query, "do not query remotes"), + OPT__DRY_RUN(&dry_run), OPT_END() }; struct ref_states states; @@ -540,11 +540,23 @@ static int prune(int argc, const char **argv) for (; argc; argc--, argv++) { int i; - get_remote_ref_states(*argv, &states, !no_query); + get_remote_ref_states(*argv, &states, 1); + + printf("Pruning %s\n", *argv); + if (states.stale.nr) + printf("URL: %s\n", + states.remote->url_nr + ? states.remote->url[0] + : "(no URL)"); for (i = 0; i < states.stale.nr; i++) { const char *refname = states.stale.items[i].util; - result |= delete_ref(refname, NULL); + + if (!dry_run) + result |= delete_ref(refname, NULL); + + printf(" * [%s] %s\n", dry_run ? "would prune" : "pruned", + skip_prefix(refname, "refs/remotes/")); } /* NEEDSWORK: free remote */ |