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

[PATCHv2 0/5] Fix relative path issues in recursive submodules.

From
Stefan Beller <sbeller@google.com>
Date
Mar 31, 2016, 21:04 UTC
Message-ID
<1459458280-17619-1-git-send-email-sbeller@google.com>
Thanks Junio, Eric and Jacob for review!
v2:
 * reworded commit message for test (Thanks Junio!)
 * instead of "simplifying" the path handling in patch 2, we are prepared
   for anything the user throws at us (i.e. instead of segfault we
       die(_("submodule--helper: unspecified or empty --path"));
   (Thanks Eric, Jacob for pushing back here!)
 * reword commit message for patch 3 (safe_create_leading_directories_const is
   not a check, Thanks Junio!)
 * patch 4 (the fix): That got reworked completely. No flow controlling
   conditions in the write out phase!
 * patch 5 is a bonus! (replace fprintf by fprintf_or die) When implementing
   that I wondered if we also have close_or_die and open_or_die, but that doesn't
   seem to be the case.
   
Thanks,
Stefan
v1:
It took me longer than expected to fix this bug.

It comes with a test and minor refactoring and applies on top of origin/sb/submodule-helper, such that it can be merged into 2.7, 2.8 as well as master.

Patch 1 is a test which fails; it has a similar layout as the real failing repository Norio Nomura pointed out, but simplified to the bare essentials for reproduction of the bug.

Patch 2&3 are not strictly necessary for fixing the isseu, but it removes stupid code I wrote, so the resulting code looks a little better.

Patch 4 fixes the issue by giving more information to relative_path, such that a relative path can be found in all cases.

Thanks, Stefan

Stefan Beller (5):
  recursive submodules: test for relative paths
  submodule--helper clone: simplify path check
  submodule--helper clone: remove double path checking
  submodule--helper, module_clone: always operate on absolute paths
  submodule--helper, module_clone: catch fprintf failure
 builtin/submodule--helper.c | 52 +++++++++++++++++++++++++--------------------
 t/t7400-submodule-basic.sh  | 41 +++++++++++++++++++++++++++++++++++
 2 files changed, 70 insertions(+), 23 deletions(-)
-- 
2.5.0.264.g39f00fe
Next: Stefan Beller
Message 1 of 12 in “[PATCHv2 0/5] Fix relative path issues in recursive submodules.”
  1. Stefan BellerMar 31, 2016
  2. 1/5 recursive submodules: test for relative pathsStefan Beller, Mar 31, 2016
  3. 2/5 submodule--helper clone: simplify path checkStefan Beller, Mar 31, 2016
  4. Eric SunshineMar 31, 2016
  5. 3/5 submodule--helper clone: remove double path checkingStefan Beller, Mar 31, 2016
  6. Eric SunshineMar 31, 2016
  7. Junio C HamanoMar 31, 2016
  8. 4/5 submodule--helper, module_clone: always operate on absolute pathsStefan Beller, Mar 31, 2016
  9. Junio C HamanoMar 31, 2016
  10. Stefan BellerMar 31, 2016
  11. Stefan BellerMar 31, 2016
  12. 5/5 submodule--helper, module_clone: catch fprintf failureStefan Beller, Mar 31, 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.