git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH v4 2/4] submodule: update core.worktree using git-config

From
Duy Nguyen <pclouds@gmail.com>
Date
Jul 22, 2016, 17:15 UTC
Message-ID
<CACsJy8Dyw4DefzPj2oy0SYZZC0TTjVCD+p5Ued265VogG_eNSw@mail.gmail.com>
In-Reply-To
<CAGZ79kZg-E8p1WW8j5ghOC=EJU++Dy++esv=vVRt8iuOYsrNpQ@mail.gmail.com>
On Thu, Jul 21, 2016 at 12:04 AM, Stefan Beller <sbeller@google.com> wrote:
Show 41 quoted lines
>> diff --git a/submodule.c b/submodule.c
>> index abc2ac2..b912871 100644
>> --- a/submodule.c
>> +++ b/submodule.c
>> @@ -1128,7 +1128,9 @@ void connect_work_tree_and_git_dir(const char *work_tree, const char *git_dir)
>>  {
>>         struct strbuf file_name = STRBUF_INIT;
>>         struct strbuf rel_path = STRBUF_INIT;
>> +       struct strbuf path = STRBUF_INIT;
>>         const char *real_work_tree = xstrdup(real_path(work_tree));
>> +       struct child_process cp = CHILD_PROCESS_INIT;
>>
>>         /* Update gitfile */
>>         strbuf_addf(&file_name, "%s/.git", work_tree);
>> @@ -1136,13 +1138,17 @@ void connect_work_tree_and_git_dir(const char *work_tree, const char *git_dir)
>>                    relative_path(git_dir, real_work_tree, &rel_path));
>>
>>         /* Update core.worktree setting */
>> -       strbuf_reset(&file_name);
>> -       strbuf_addf(&file_name, "%s/config", git_dir);
>> -       git_config_set_in_file(file_name.buf, "core.worktree",
>> -                              relative_path(real_work_tree, git_dir,
>> -                                            &rel_path));
>> +       strbuf_addstr(&path, relative_path(real_work_tree, git_dir,
>> +                                          &rel_path));
>> +       cp.git_cmd = 1;
>> +       argv_array_pushl(&cp.args, "-C", work_tree, NULL);
>> +       argv_array_pushl(&cp.args, "--work-tree", ".", NULL);
>> +       argv_array_pushl(&cp.args, "config", "core.worktree", path.buf, NULL);
>> +       if (run_command(&cp) < 0)
>> +               die(_("failed to update core.worktree for %s"), git_dir);
>
> Do we need to make this conditional on the extensions.worktreeConfig
> variable, though? When I just run
>
>     git config --worktree . foo bar
> fatal: Per-worktree configuration requires extensions.worktreeConfig
> Please read section CONFIGURATION in `git help worktree` before
> enabling it.
>
> which would trigger the failure here?

It was intended, but I was probably just paranoid. The thinking back then was, you are switching from "share whole config" to "not share something". This should not be taken lightly and you should examine your config file and decide what to share, before making the switch. It's dangerous!

But then, if everything has been shared before (assuming there are more than one worktree) and you are probably happy with it (or you would have made done something to unshare), so it's probably good to keep on sharing. Which means we can set extensions.worktreeConfig automatically here (when "git config --worktree" is used) instead of dying. We would need to move core.bare and core.worktree to main worktree, but that's manageable.

So in short, you would not see this message in this context in future again.
-- 
Duy
Previous: Stefan Beller
Message 31 of 31 in “Current state of Git worktree used with submodules?”
  1. Lars SchneiderJul 19, 2016
  2. Duy NguyenJul 20, 2016
  3. 0/4 Split .git/config in multiple worktree setupNguyễn Thái Ngọc Duy, Jul 20, 2016
  4. 1/4 worktree: add per-worktree config filesNguyễn Thái Ngọc Duy, Jul 20, 2016
  5. Stefan BellerJul 26, 2016
  6. Duy NguyenJul 26, 2016
  7. 4/4 t2029: some really basic tests for submodules in multi worktreeNguyễn Thái Ngọc Duy, Jul 20, 2016
  8. 3/4 submodule: support running in multiple worktree setupNguyễn Thái Ngọc Duy, Jul 20, 2016
  9. Stefan BellerJul 20, 2016
  10. Stefan BellerJul 22, 2016
  11. Jens LehmannJul 22, 2016
  12. Stefan BellerJul 22, 2016
  13. Junio C HamanoJul 22, 2016
  14. Stefan BellerJul 22, 2016
  15. Junio C HamanoJul 25, 2016
  16. Duy NguyenJul 22, 2016
  17. Stefan BellerJul 22, 2016
  18. Duy NguyenJul 22, 2016
  19. Stefan BellerJul 25, 2016
  20. Duy NguyenJul 26, 2016
  21. Stefan BellerJul 26, 2016
  22. Jakub NarębskiJul 27, 2016
  23. Stefan BellerJul 27, 2016
  24. Duy NguyenJul 27, 2016
  25. Stefan BellerAug 3, 2016
  26. Max KirillovJul 27, 2016
  27. Jakub NarębskiJul 27, 2016
  28. Duy NguyenJul 27, 2016
  29. 2/4 submodule: update core.worktree using git-configNguyễn Thái Ngọc Duy, Jul 20, 2016
  30. Stefan BellerJul 20, 2016
  31. Duy NguyenJul 22, 2016

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.