From 6cb5728c43f34a7348e128b44b80d00b9417cb19 Mon Sep 17 00:00:00 2001 From: Chris Packham Date: Wed, 3 Jul 2013 21:02:02 +1200 Subject: submodule update: allow custom command to update submodule working tree Users can set submodule.$name.update to '!command' which will cause 'command' to be run instead of checkout/merge/rebase. This allows the user finer-grained control over how the update is done. The primary motivation for this was interoperability with stgit; however being able to intercept the submodule update process may prove useful for integrating with or extending other tools. Signed-off-by: Chris Packham Signed-off-by: Junio C Hamano --- git-submodule.sh | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'git-submodule.sh') diff --git a/git-submodule.sh b/git-submodule.sh index 945e296d3..c87515de1 100755 --- a/git-submodule.sh +++ b/git-submodule.sh @@ -860,6 +860,12 @@ Maybe you want to use 'update --init'?")" say_msg="$(eval_gettext "Submodule path '\$displaypath': merged in '\$sha1'")" must_die_on_failure=yes ;; + !*) + command="${update_module#!}" + die_msg="$(eval_gettext "Execution of '\$command \$sha1' failed in submodule path '\$prefix\$sm_path'")" + say_msg="$(eval_gettext "Submodule path '\$prefix\$sm_path': '\$command \$sha1'")" + must_die_on_failure=yes + ;; *) command="git checkout $subforce -q" die_msg="$(eval_gettext "Unable to checkout '\$sha1' in submodule path '\$displaypath'")" -- cgit v1.2.1