Skip to content

Add "git config --move-to"

Nguyễn Thái Ngọc Duy git 1 version In review

Get series with b4
b4 am [email protected]

Versions newest first

  1. v1 Latest6 patches 5 repliesIn review

Patches in v1 No applies recorded yet

#Subject and filesSizeRepliesApplied
1/6config.c: avoid git_path() in do_git_config_sequence()config.c+8 -61 reply
2/6worktree.c: add get_worktree_config()builtin/config.c worktree.c worktree.h+25 -71 reply
3/6config.c: add repo_config_set_worktree_gently()config.c config.h+43 -12 replies
4/6config: use OPT_FILENAME()builtin/config.c+1 -51 reply
5/6config: factor out set_config_source_file()builtin/config.c+59 -540 replies
6/6config: add --move-toDocumentation/git-config.txt Documentation/git-worktree.txt builtin/config.c +1 more+196 -60 replies

Reviews trailers per patch

No Reviewed-by, Acked-by or Tested-by trailers for v1 yet.

Read the v1 thread

Cover letter [PATCH 0/6] Add "git config --move-to"

This is a continuation of nd/per-worktree-config, fixing is small things from that series and prepares to make submodules work in multiple worktrees.

The first thing is adding API for updating per-worktree config in 03/06. When submodule code wants to write to a per-worktree config, calling this function takes care of both single and multi worktree setups, similar to "git config --worktree <name> <value>"

The second thing is "git config --move-to" and friends. This helps the config transition right after enabling extensions.worktreeConfig, when the user has to make sure per-worktree config stays in per-worktree file.

Manual moving config from one file to another is possible with a couple keys like core.worktree, but once you have to move multiple groups (i.e. "submodule.*.*" keys) then it becomes a lot less fun and more pain. This simplifies that work (and also migration documentation)

Note that I added --move-glob-to because I think glob fits much better than regex for matching keys because of the dots in config keys. I added --move-regex-to anyway because we have --get-regexp. Maybe I should add --get-glob too (but probably not now).

There is also a NEEDSWORK in 03/06. But I hope it could be addressed after this series is merged (so that I could continue pushing submodule changes out)

Nguyễn Thái Ngọc Duy (6):
config.c: avoid git_path() in do_git_config_sequence() worktree.c: add get_worktree_config() config.c: add repo_config_set_worktree_gently()
config: use OPT_FILENAME()
config: factor out set_config_source_file()
config: add --move-to

 Documentation/git-config.txt   |  12 ++
 Documentation/git-worktree.txt |  16 ++-
 builtin/config.c               | 244 ++++++++++++++++++++++++---------
 config.c                       |  55 +++++++-
 config.h                       |   3 +
 t/t1300-config.sh              |  54 ++++++++
 worktree.c                     |  16 +++
 worktree.h                     |   7 +
 8 files changed, 330 insertions(+), 77 deletions(-)
Signature · 1 line
2.20.0.482.g66447595a7