summaryrefslogtreecommitdiff
path: root/builtin-remote.c
diff options
context:
space:
mode:
authorOlivier Marin <dkr@freesurf.fr>2008-06-10 14:51:35 (GMT)
committerJunio C Hamano <gitster@pobox.com>2008-06-11 06:17:41 (GMT)
commit8d7679276af861b44e307c9879f6c4774f4944fc (patch)
tree3c60781578380ecd638465e57c7dbd32b5ef1cec /builtin-remote.c
parent67a7e2d07162dc470f7e3ae1889aad146e5b7917 (diff)
downloadgit-8d7679276af861b44e307c9879f6c4774f4944fc.zip
git-8d7679276af861b44e307c9879f6c4774f4944fc.tar.gz
git-8d7679276af861b44e307c9879f6c4774f4944fc.tar.bz2
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.c20
1 files changed, 16 insertions, 4 deletions
diff --git a/builtin-remote.c b/builtin-remote.c
index 745a4ee..6bce55c 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 */