From 06bf4ad1db92c32af38e16d9b7f928edbd647780 Mon Sep 17 00:00:00 2001 From: Brandon Williams Date: Wed, 5 Apr 2017 10:47:19 -0700 Subject: push: propagate remote and refspec with --recurse-submodules Teach "push --recurse-submodules" to propagate, if given a name as remote, the provided remote and refspec recursively to the pushes performed in the submodules. The push will therefore only succeed if all submodules have a remote with such a name configured. Note that "push --recurse-submodules" with a path or URL as remote will not propagate the remote or refspec and instead use the default remote and refspec configured in the submodule, preserving the current behavior. Signed-off-by: Brandon Williams Signed-off-by: Junio C Hamano --- submodule.h | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'submodule.h') diff --git a/submodule.h b/submodule.h index 0e26430fd3..127ff9be84 100644 --- a/submodule.h +++ b/submodule.h @@ -4,6 +4,7 @@ struct diff_options; struct argv_array; struct sha1_array; +struct remote; enum { RECURSE_SUBMODULES_ONLY = -5, @@ -91,7 +92,8 @@ extern int find_unpushed_submodules(struct sha1_array *commits, const char *remotes_name, struct string_list *needs_pushing); extern int push_unpushed_submodules(struct sha1_array *commits, - const char *remotes_name, + const struct remote *remote, + const char **refspec, int refspec_nr, const struct string_list *push_options, int dry_run); extern void connect_work_tree_and_git_dir(const char *work_tree, const char *git_dir); -- cgit v1.3