"worktree add" internally calls "reset --hard", but if submodule.recurse is set, reset tries to recurse into initialized submodules, which makes start_command try to cd into non-existing submodule paths and die.
Fix that by making sure that the call to reset in "worktree add" does not recurse.
Some remarks:
1. This patch is based on maint
2. The 2 Travis CI macOS builds fail (they also fail on maint) with the
message:
> +brew install caskroom/cask/perforce Error: caskroom/cask was moved. Tap
homebrew/cask-cask instead. The command "ci/install-dependencies.sh"
failed and exited with 1 during .
3. I'm on OS X 10.11.6 (Apple clang-800.0.42.1) and I get a warning
compiling builtin/merge.c :
> CC builtin/merge.o
builtin/merge.c:831:33: warning: data argument not used by format string [-Wformat-extra-args]
no_scissors_editor_comment), comment_line_char);
~~~~~~~~~~~~~~~~~~~~~~~~~~~ ^
builtin/merge.c:809:4: note: format string is defined here
N_("An empty message aborts the commit.\n");
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./gettext.h:86:20: note: expanded from macro 'N_'
#define N_(msgid) (msgid)
^~~~~
1 warning generated.
This makes me unable to build with DEVELOPER=1.Philippe Blain (1): worktree: teach "add" to ignore submodule.recurse config
builtin/worktree.c | 2 +- t/t2400-worktree-add.sh | 24 ++++++++++++++++++++++++ 2 files changed, 25 insertions(+), 1 deletion(-)
base-commit: 5fa0f5238b0cd46cfe7f6fa76c3f526ea98148d9 Published-As: https://github.com/gitgitgadget/git/releases/tag/pr-430%2Fphil-blain%2Fworktree-add-recurse-submodule-config-v1 Fetch-It-Via: git fetch https://github.com/gitgitgadget/git pr-430/phil-blain/worktree-add-recurse-submodule-config-v1 Pull-Request: https://github.com/gitgitgadget/git/pull/430
-- gitgitgadget