Browse Source

Merge branch 'nd/submodule-foreach-quiet'

"git submodule foreach <command> --quiet" did not pass the option
down correctly, which has been corrected.

* nd/submodule-foreach-quiet:
  submodule foreach: fix "<command> --quiet" not being respected
maint
Junio C Hamano 6 years ago
parent
commit
f1c9f6ce38
  1. 8
      builtin/submodule--helper.c
  2. 11
      git-submodule.sh
  3. 10
      t/t7407-submodule-foreach.sh

8
builtin/submodule--helper.c

@ -566,12 +566,12 @@ static int module_foreach(int argc, const char **argv, const char *prefix) @@ -566,12 +566,12 @@ static int module_foreach(int argc, const char **argv, const char *prefix)
};

const char *const git_submodule_helper_usage[] = {
N_("git submodule--helper foreach [--quiet] [--recursive] <command>"),
N_("git submodule--helper foreach [--quiet] [--recursive] [--] <command>"),
NULL
};

argc = parse_options(argc, argv, prefix, module_foreach_options,
git_submodule_helper_usage, PARSE_OPT_KEEP_UNKNOWN);
git_submodule_helper_usage, 0);

if (module_list_compute(0, NULL, prefix, &pathspec, &list) < 0)
return 1;
@ -709,7 +709,7 @@ static int module_init(int argc, const char **argv, const char *prefix) @@ -709,7 +709,7 @@ static int module_init(int argc, const char **argv, const char *prefix)
};

const char *const git_submodule_helper_usage[] = {
N_("git submodule--helper init [<path>]"),
N_("git submodule--helper init [<options>] [<path>]"),
NULL
};

@ -2096,7 +2096,7 @@ static int absorb_git_dirs(int argc, const char **argv, const char *prefix) @@ -2096,7 +2096,7 @@ static int absorb_git_dirs(int argc, const char **argv, const char *prefix)
};

const char *const git_submodule_helper_usage[] = {
N_("git submodule--helper embed-git-dir [<path>...]"),
N_("git submodule--helper absorb-git-dirs [<options>] [<path>...]"),
NULL
};


11
git-submodule.sh

@ -347,7 +347,7 @@ cmd_foreach() @@ -347,7 +347,7 @@ cmd_foreach()
shift
done

git ${wt_prefix:+-C "$wt_prefix"} ${prefix:+--super-prefix "$prefix"} submodule--helper foreach ${GIT_QUIET:+--quiet} ${recursive:+--recursive} "$@"
git ${wt_prefix:+-C "$wt_prefix"} ${prefix:+--super-prefix "$prefix"} submodule--helper foreach ${GIT_QUIET:+--quiet} ${recursive:+--recursive} -- "$@"
}

#
@ -378,7 +378,7 @@ cmd_init() @@ -378,7 +378,7 @@ cmd_init()
shift
done

git ${wt_prefix:+-C "$wt_prefix"} ${prefix:+--super-prefix "$prefix"} submodule--helper init ${GIT_QUIET:+--quiet} "$@"
git ${wt_prefix:+-C "$wt_prefix"} ${prefix:+--super-prefix "$prefix"} submodule--helper init ${GIT_QUIET:+--quiet} -- "$@"
}

#
@ -414,7 +414,7 @@ cmd_deinit() @@ -414,7 +414,7 @@ cmd_deinit()
shift
done

git ${wt_prefix:+-C "$wt_prefix"} submodule--helper deinit ${GIT_QUIET:+--quiet} ${prefix:+--prefix "$prefix"} ${force:+--force} ${deinit_all:+--all} "$@"
git ${wt_prefix:+-C "$wt_prefix"} submodule--helper deinit ${GIT_QUIET:+--quiet} ${prefix:+--prefix "$prefix"} ${force:+--force} ${deinit_all:+--all} -- "$@"
}

is_tip_reachable () (
@ -543,6 +543,7 @@ cmd_update() @@ -543,6 +543,7 @@ cmd_update()
${depth:+--depth "$depth"} \
$recommend_shallow \
$jobs \
-- \
"$@" || echo "#unmatched" $?
} | {
err=
@ -1001,7 +1002,7 @@ cmd_status() @@ -1001,7 +1002,7 @@ cmd_status()
shift
done

git ${wt_prefix:+-C "$wt_prefix"} ${prefix:+--super-prefix "$prefix"} submodule--helper status ${GIT_QUIET:+--quiet} ${cached:+--cached} ${recursive:+--recursive} "$@"
git ${wt_prefix:+-C "$wt_prefix"} ${prefix:+--super-prefix "$prefix"} submodule--helper status ${GIT_QUIET:+--quiet} ${cached:+--cached} ${recursive:+--recursive} -- "$@"
}
#
# Sync remote urls for submodules
@ -1034,7 +1035,7 @@ cmd_sync() @@ -1034,7 +1035,7 @@ cmd_sync()
esac
done

git ${wt_prefix:+-C "$wt_prefix"} ${prefix:+--super-prefix "$prefix"} submodule--helper sync ${GIT_QUIET:+--quiet} ${recursive:+--recursive} "$@"
git ${wt_prefix:+-C "$wt_prefix"} ${prefix:+--super-prefix "$prefix"} submodule--helper sync ${GIT_QUIET:+--quiet} ${recursive:+--recursive} -- "$@"
}

cmd_absorbgitdirs()

10
t/t7407-submodule-foreach.sh

@ -411,4 +411,14 @@ test_expect_success 'multi-argument command passed to foreach is not shell-evalu @@ -411,4 +411,14 @@ test_expect_success 'multi-argument command passed to foreach is not shell-evalu
test_cmp expected actual
'

test_expect_success 'option-like arguments passed to foreach commands are not lost' '
(
cd super &&
git submodule foreach "echo be --quiet" > ../expected &&
git submodule foreach echo be --quiet > ../actual
) &&
grep -sq -e "--quiet" expected &&
test_cmp expected actual
'

test_done

Loading…
Cancel
Save