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

Re: git commit vs. ignore-submodules

From
Jens Lehmann <jens.lehmann@web.de>
Date
Mar 28, 2014, 16:47 UTC
Message-ID
<5335A78C.60401@web.de>
In-Reply-To
<CABxC_L92v=cV=+e_DNa0L6f21LB0BRP5duai2h_heGJN_PRoUQ@mail.gmail.com>
Am 28.03.2014 00:36, schrieb Ronald Weiss:
> Hello.
> 
> As this is my first post to this list, let me first thank all the
> people involved in Git development - it's really a great tool.
Welcome and thanks for the feedback!
Show 27 quoted lines
> Now to the point. Since Git 1.8 (I think), git commit command honours
> the submodules' ignore settings, configured either in .gitmodules, or
> in .git/config. That's very nice and certainly correct for "git commit
> -a", but it's less clear if one explicitely stages an updated
> submodule using git add. Git commit will ignore it anyway, if
> ignore=all is configured in .gitmodules. Maybe that's correct too, I'm
> not sure about that, but it's inconvenient in our use case, especially
> combined with the lack of --ignore-submodule parameter to git commit,
> as git status and git diff have.
> 
> We use submodules in such a way that normally we don't ever want to
> see changes in them in output of git diff and git status. So we set
> ignore=all in .gitmodules for each submodule. But occasionally, we
> need to add a new submodule, and sometimes also commit changed
> submodule. This got harder with Git 1.8, we have to "git config
> submodule.<name>.ignore none" before the commit, and "git config
> --unset ..." after.
> 
> I'd like to at least add an --ignore-submodules parameter to git
> commit. I though about posting a patch, but as I looked into the
> commit source file, I didn't see any straightforward way to implement
> it. I don't have enough free time for a deeper analysis of the
> sources, I'm sorry.
> 
> So please, let me first know, whether you could possibly accept such
> patch, and if so, then I'd really appreciate some hints on how to do
> it.

Such a patch would be very much appreciated. You might want to look into other commands that already have the --ignore-submodules option to get an idea how to do that. cmd_status() in builtin/commit.c should be a good starting point.

> And also, I'd like to know git folks' opinion on whether it's OK that
> git commit with ignore=all in .gitmodules ignores submodules even when
> they are explicitely staged with git add.

No, they should be visible in status and commit when the user chose to add them. I see if I can hack something up (as I've been bitten myself by that recently ;-).

Previous: Ronald WeissNext: Junio C Hamano
Message 2 of 51 in “git commit vs. ignore-submodules”
  1. Ronald WeissMar 27, 2014
  2. Jens LehmannMar 28, 2014
  3. Junio C HamanoMar 28, 2014
  4. Ronald WeissMar 29, 2014
  5. 1/2 commit: add --ignore-submodules[=<when>] parameterRonald Weiss, Mar 29, 2014
  6. Jens LehmannMar 29, 2014
  7. Jens LehmannMar 30, 2014
  8. commit: add --ignore-submodules[=<when>] parameterRonald Weiss, Mar 30, 2014
  9. commit: add --ignore-submodules[=<when>] parameterRonald Weiss, Mar 31, 2014
  10. Jens LehmannMar 31, 2014
  11. Jens LehmannMar 31, 2014
  12. Ronald WeissMar 31, 2014
  13. Ronald WeissMar 31, 2014
  14. Ronald WeissMar 31, 2014
  15. Ronald WeissMar 31, 2014
  16. Jens LehmannApr 1, 2014
  17. Ronald WeissApr 1, 2014
  18. Jens LehmannApr 2, 2014
  19. Ronald WeissApr 2, 2014
  20. Jens LehmannApr 6, 2014
  21. Ronald WeissApr 7, 2014
  22. 1/2 add: add --ignore-submodules[=<when>] parameterRonald Weiss, Apr 7, 2014
  23. 2/2 commit: add --ignore-submodules[=<when>] parameterRonald Weiss, Apr 7, 2014
  24. Jens LehmannApr 8, 2014
  25. Ronald WeissApr 8, 2014
  26. Ronald WeissApr 12, 2014
  27. 1/2 add: add --ignore-submodules[=<when>] parameterRonald Weiss, Apr 12, 2014
  28. Jens LehmannApr 18, 2014
  29. Ronald WeissApr 21, 2014
  30. 2/2 commit: add --ignore-submodules[=<when>] parameterRonald Weiss, Apr 12, 2014
  31. Jens LehmannApr 18, 2014
  32. Ronald WeissApr 21, 2014
  33. Jens LehmannApr 22, 2014
  34. 1/2 add: add --ignore-submodules[=<when>] parameterRonald Weiss, Apr 22, 2014
  35. Eric SunshineApr 23, 2014
  36. 1/2 add: add --ignore-submodules[=<when>] parameterRonald Weiss, Apr 24, 2014
  37. 2/2 commit: add --ignore-submodules[=<when>] parameterRonald Weiss, Apr 24, 2014
  38. 2/2 commit: add --ignore-submodules[=<when>] parameterRonald Weiss, Apr 22, 2014
  39. Junio C HamanoApr 14, 2014
  40. Ronald WeissApr 14, 2014
  41. Junio C HamanoApr 14, 2014
  42. Jens LehmannApr 8, 2014
  43. Ronald WeissApr 12, 2014
  44. Jens LehmannApr 18, 2014
  45. Ronald WeissApr 22, 2014
  46. Junio C HamanoMar 31, 2014
  47. 2/2 status: don't ignore submodules added to indexRonald Weiss, Mar 29, 2014
  48. Jens LehmannMar 29, 2014
  49. Ronald WeissMar 29, 2014
  50. Ronald WeissMar 30, 2014
  51. status/commit: always show staged submodules regardless of ignore configJens Lehmann, Mar 30, 2014

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.