diff options
author | Michael Haggerty <mhagger@alum.mit.edu> | 2013-10-30 06:33:04 +0100 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2013-10-30 14:16:41 -0700 |
commit | 90765fa3e01658ac2fb75a4eb740cee7dad4a2dc (patch) | |
tree | 0c9b8335b6ea86f4241e4123a226e9b24b791fa9 /builtin/remote.c | |
parent | builtin/remote.c:update(): use struct argv_array (diff) | |
download | tgif-90765fa3e01658ac2fb75a4eb740cee7dad4a2dc.tar.xz |
fetch, remote: properly convey --no-prune options to subprocesses
If --no-prune is passed to one of the following commands:
git fetch --all
git fetch --multiple
git fetch --recurse-submodules
git remote update
then it must also be passed to the "fetch" subprocesses that those
commands use to do their work. Otherwise there might be a fetch.prune
or remote.<name>.prune configuration setting that causes pruning to
occur, contrary to the user's express wish.
Signed-off-by: Michael Haggerty <mhagger@alum.mit.edu>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'builtin/remote.c')
-rw-r--r-- | builtin/remote.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/builtin/remote.c b/builtin/remote.c index bffe2f9f71..f532f35457 100644 --- a/builtin/remote.c +++ b/builtin/remote.c @@ -1371,7 +1371,7 @@ static int get_remote_default(const char *key, const char *value, void *priv) static int update(int argc, const char **argv) { - int i, prune = 0; + int i, prune = -1; struct option options[] = { OPT_BOOL('p', "prune", &prune, N_("prune remotes after fetching")), @@ -1386,8 +1386,8 @@ static int update(int argc, const char **argv) argv_array_push(&fetch_argv, "fetch"); - if (prune) - argv_array_push(&fetch_argv, "--prune"); + if (prune != -1) + argv_array_push(&fetch_argv, prune ? "--prune" : "--no-prune"); if (verbose) argv_array_push(&fetch_argv, "-v"); argv_array_push(&fetch_argv, "--multiple"); |