diff options
author | Finn Arne Gangstad <finnag@pvv.org> | 2009-04-03 11:02:37 +0200 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2009-04-05 01:52:33 -0700 |
commit | b92c5f228a9c07fe339c8fd5406069602b6452f6 (patch) | |
tree | fb1f8438e8328fb14f92aa21cbfc8398ac9fc58c | |
parent | Update draft release notes to 1.6.3 (diff) | |
download | tgif-b92c5f228a9c07fe339c8fd5406069602b6452f6.tar.xz |
builtin-remote.c: Split out prune_remote as a separate function.
prune_remote will be used in update(), so this function was split
out to avoid code duplication.
Signed-off-by: Finn Arne Gangstad <finnag@pvv.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
-rw-r--r-- | builtin-remote.c | 56 |
1 files changed, 30 insertions, 26 deletions
diff --git a/builtin-remote.c b/builtin-remote.c index 9ef846f6a4..c53966fd8d 100644 --- a/builtin-remote.c +++ b/builtin-remote.c @@ -26,6 +26,7 @@ static const char * const builtin_remote_usage[] = { static int verbose; static int show_all(void); +static int prune_remote(const char *remote, int dry_run); static inline int postfixcmp(const char *string, const char *postfix) { @@ -1128,46 +1129,49 @@ static int prune(int argc, const char **argv) OPT__DRY_RUN(&dry_run), 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"); + for (; argc; argc--, argv++) + result |= prune_remote(*argv, dry_run); - memset(&states, 0, sizeof(states)); - for (; argc; argc--, argv++) { - int i; - - get_remote_ref_states(*argv, &states, GET_REF_STATES); + return result; +} - if (states.stale.nr) { - printf("Pruning %s\n", *argv); - printf("URL: %s\n", - states.remote->url_nr - ? states.remote->url[0] - : "(no URL)"); - } +static int prune_remote(const char *remote, int dry_run) +{ + int result = 0, i; + struct ref_states states; + const char *dangling_msg = dry_run + ? " %s will become dangling!\n" + : " %s has become dangling!\n"; - for (i = 0; i < states.stale.nr; i++) { - const char *refname = states.stale.items[i].util; + memset(&states, 0, sizeof(states)); + get_remote_ref_states(remote, &states, GET_REF_STATES); + + if (states.stale.nr) { + printf("Pruning %s\n", remote); + printf("URL: %s\n", + states.remote->url_nr + ? states.remote->url[0] + : "(no URL)"); + } - if (!dry_run) - result |= delete_ref(refname, NULL, 0); + for (i = 0; i < states.stale.nr; i++) { + const char *refname = states.stale.items[i].util; - printf(" * [%s] %s\n", dry_run ? "would prune" : "pruned", - abbrev_ref(refname, "refs/remotes/")); - warn_dangling_symref(dangling_msg, refname); - } + if (!dry_run) + result |= delete_ref(refname, NULL, 0); - free_remote_ref_states(&states); + printf(" * [%s] %s\n", dry_run ? "would prune" : "pruned", + abbrev_ref(refname, "refs/remotes/")); + warn_dangling_symref(dangling_msg, refname); } + free_remote_ref_states(&states); return result; } |