Skip to content

pr-430/phil-blain/worktree-add-recurse-submodule-config-v1

"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

Submitted-As: https://public-inbox.org/git/pull.430.git.1572196585.gitgitgadget@gmail.com
Assets 2