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

[PATCHv4 0/5] submodule embedgitdirs

From
Stefan Beller <sbeller@google.com>
Date
Dec 2, 2016, 23:42 UTC
Message-ID
<20161202234220.24664-1-sbeller@google.com>
v4:
* rebuilt on top of nd/worktree-list-fixup
* fix and test behavior for un-init submodules (don't crash, rather do nothing)
* incorporated a "static" as pointed out by Ramsay
* use internal functions instead of duplicating code in worktree.c
  (use get_common_dir_noenv for the submodule to actually get the common dir)
* fixed a memory leak in relocate_gitdir 
Stefan Beller (5):
  submodule: use absolute path for computing relative path connecting
  submodule helper: support super prefix
  test-lib-functions.sh: teach test_commit -C <dir>
  worktree: get worktrees from submodules
  submodule: add embed-git-dir function
 Documentation/git-submodule.txt   |  14 ++++++
 builtin/submodule--helper.c       |  91 +++++++++++++++++++++++++++++-----
 dir.c                             |  81 ++++++++++++++++++++++++++++++
 dir.h                             |   4 ++
 git-submodule.sh                  |   7 ++-
 git.c                             |   2 +-
 submodule.c                       |  12 +++--
 t/t7412-submodule-embedgitdirs.sh | 101 ++++++++++++++++++++++++++++++++++++++
 t/test-lib-functions.sh           |  20 ++++++--
 worktree.c                        |  47 ++++++++++++++----
 worktree.h                        |   6 +++
 11 files changed, 352 insertions(+), 33 deletions(-)
 create mode 100755 t/t7412-submodule-embedgitdirs.sh
v3:
* have a slightly more generic function "relocate_gitdir".
  The recursion is strictly related to submodules, though.
* bail out if a submodule is using worktrees.
  This also lays the groundwork for later doing the proper thing,
  as worktree.h offers a function `get_submodule_worktrees(path)`
* nit by duy: use git_path instead of git_common_dir
* diff to v2 (as queued by Junio) below.
v2:
* fixed commit message for patch:
 "submodule: use absolute path for computing relative path connecting"
* a new patch "submodule helper: support super prefix"
* redid the final patch with more tests and fixing bugs along the way
* "test-lib-functions.sh: teach test_commit -C <dir>" unchanged

v1: The discussion of the submodule checkout series revealed to me that a command is needed to move the git directory from the submodules working tree to be embedded into the superprojects git directory.

So I wrote the code to intern the submodules git dir into the superproject, but whilst writing the code I realized this could be valueable for our use in testing too. So I exposed it via the submodule--helper. But as the submodule helper ought to be just an internal API, we could also offer it via the proper submodule command.

The command as it is has little value to the end user for now, but breaking it out of the submodule checkout series hopefully makes review easier.

Thanks, Stefan

-- 
2.11.0.rc2.28.g2673dad
Next: Stefan Beller
Message 1 of 6 in “[PATCHv4 0/5] submodule embedgitdirs”
  1. Stefan BellerDec 2, 2016
  2. 1/5 submodule: use absolute path for computing relative path connectingStefan Beller, Dec 2, 2016
  3. 4/5 worktree: get worktrees from submodulesStefan Beller, Dec 2, 2016
  4. 5/5 submodule: add embed-git-dir functionStefan Beller, Dec 2, 2016
  5. 3/5 test-lib-functions.sh: teach test_commit -C <dir>Stefan Beller, Dec 2, 2016
  6. 2/5 submodule helper: support super prefixStefan Beller, Dec 2, 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.