<feed xmlns='http://www.w3.org/2005/Atom'>
<title>git/git-submodule.sh, branch v2.19.0</title>
<subtitle>Mirror of https://git.kernel.org/pub/scm/git/git.git/
</subtitle>
<id>https://www.git.shady.money/git/atom?h=v2.19.0</id>
<link rel='self' href='https://www.git.shady.money/git/atom?h=v2.19.0'/>
<link rel='alternate' type='text/html' href='https://www.git.shady.money/git/'/>
<updated>2018-09-08T02:05:20Z</updated>
<entry>
<title>Revert "Merge branch 'sb/submodule-core-worktree'"</title>
<updated>2018-09-08T02:05:20Z</updated>
<author>
<name>Jonathan Nieder</name>
<email>jrnieder@gmail.com</email>
</author>
<published>2018-09-08T00:09:46Z</published>
<link rel='alternate' type='text/html' href='https://www.git.shady.money/git/commit/?id=f178c13fdac42763a7aa58bf260aa67d9f4393ec'/>
<id>urn:sha1:f178c13fdac42763a7aa58bf260aa67d9f4393ec</id>
<content type='text'>
This reverts commit 7e25437d35a70791b345872af202eabfb3e1a8bc, reversing
changes made to 00624d608cc69bd62801c93e74d1ea7a7ddd6598.

v2.19.0-rc0~165^2~1 (submodule: ensure core.worktree is set after
update, 2018-06-18) assumes an "absorbed" submodule layout, where the
submodule's Git directory is in the superproject's .git/modules/
directory and .git in the submodule worktree is a .git file pointing
there.  In particular, it uses $GIT_DIR/modules/$name to find the
submodule to find out whether it already has core.worktree set, and it
uses connect_work_tree_and_git_dir if not, resulting in

	fatal: could not open sub/.git for writing

The context behind that patch: v2.19.0-rc0~165^2~2 (submodule: unset
core.worktree if no working tree is present, 2018-06-12) unsets
core.worktree when running commands like "git checkout
--recurse-submodules" to switch to a branch without the submodule.  If
a user then uses "git checkout --no-recurse-submodules" to switch back
to a branch with the submodule and runs "git submodule update", this
patch is needed to ensure that commands using the submodule directly
are aware of the path to the worktree.

It is late in the release cycle, so revert the whole 3-patch series.
We can try again later for 2.20.

Reported-by: Allan Sandfeld Jensen &lt;allan.jensen@qt.io&gt;
Helped-by: Stefan Beller &lt;sbeller@google.com&gt;
Signed-off-by: Jonathan Nieder &lt;jrnieder@gmail.com&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>Merge branch 'sb/pull-rebase-submodule'</title>
<updated>2018-08-20T18:33:54Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2018-08-20T18:33:54Z</published>
<link rel='alternate' type='text/html' href='https://www.git.shady.money/git/commit/?id=ce9c6a3c78bc2e2ebbe5f3351a2623d6101985f8'/>
<id>urn:sha1:ce9c6a3c78bc2e2ebbe5f3351a2623d6101985f8</id>
<content type='text'>
"git pull --rebase -v" in a repository with a submodule barfed as
an intermediate process did not understand what "-v(erbose)" flag
meant, which has been fixed.

* sb/pull-rebase-submodule:
  git-submodule.sh: accept verbose flag in cmd_update to be non-quiet
</content>
</entry>
<entry>
<title>git-submodule.sh: accept verbose flag in cmd_update to be non-quiet</title>
<updated>2018-08-14T19:48:28Z</updated>
<author>
<name>Stefan Beller</name>
<email>sbeller@google.com</email>
</author>
<published>2018-08-14T18:22:02Z</published>
<link rel='alternate' type='text/html' href='https://www.git.shady.money/git/commit/?id=e84c3cf3dc3c3140d317f7ed0b18768adbec0401'/>
<id>urn:sha1:e84c3cf3dc3c3140d317f7ed0b18768adbec0401</id>
<content type='text'>
In a56771a668d (builtin/pull: respect verbosity settings in submodules,
2018-01-25), we made sure to pass on both quiet and verbose flag from
builtin/pull.c to the submodule shell script. However git-submodule doesn't
understand a verbose flag, which results in a bug when invoking

  git pull --recurse-submodules -v [...]

There are a few different approaches to fix this bug:

1) rewrite 'argv_push_verbosity' or its caller in builtin/pull.c to
   cap opt_verbosity at 0. Then 'argv_push_verbosity' would only add
   '-q' if any.

2) Have a flag in 'argv_push_verbosity' that specifies if we allow adding
  -q or -v (or both).

3) Add -v to git-submodule.sh and make it a no-op

(1) seems like a maintenance burden: What if we add code after
the submodule operations or move submodule operations higher up,
then we have altered the opt_verbosity setting further down the line
in builtin/pull.c.

(2) seems like it could work reasonably well without more regressions

(3) seems easiest to implement as well as actually is a feature with the
    last-one-wins rule of passing flags to Git commands.

Reported-by: Jochen Kühner
Signed-off-by: Stefan Beller &lt;sbeller@google.com&gt;
Reviewed-by: Jonathan Nieder &lt;jrnieder@gmail.com&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>Merge branch 'sb/submodule-core-worktree'</title>
<updated>2018-07-18T19:20:28Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2018-07-18T19:20:28Z</published>
<link rel='alternate' type='text/html' href='https://www.git.shady.money/git/commit/?id=7e25437d35a70791b345872af202eabfb3e1a8bc'/>
<id>urn:sha1:7e25437d35a70791b345872af202eabfb3e1a8bc</id>
<content type='text'>
"git submodule" did not correctly adjust core.worktree setting that
indicates whether/where a submodule repository has its associated
working tree across various state transitions, which has been
corrected.

* sb/submodule-core-worktree:
  submodule deinit: unset core.worktree
  submodule: ensure core.worktree is set after update
  submodule: unset core.worktree if no working tree is present
</content>
</entry>
<entry>
<title>Merge branch 'pc/submodule-helper-foreach'</title>
<updated>2018-06-25T20:22:35Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2018-06-25T20:22:35Z</published>
<link rel='alternate' type='text/html' href='https://www.git.shady.money/git/commit/?id=ea27893a65cc41cad2710466aa6a58866ff22f1e'/>
<id>urn:sha1:ea27893a65cc41cad2710466aa6a58866ff22f1e</id>
<content type='text'>
The bulk of "git submodule foreach" has been rewritten in C.

* pc/submodule-helper-foreach:
  submodule: port submodule subcommand 'foreach' from shell to C
  submodule foreach: document variable '$displaypath'
  submodule foreach: document '$sm_path' instead of '$path'
  submodule foreach: correct '$path' in nested submodules from a subdirectory
</content>
</entry>
<entry>
<title>submodule: ensure core.worktree is set after update</title>
<updated>2018-06-19T16:28:13Z</updated>
<author>
<name>Stefan Beller</name>
<email>sbeller@google.com</email>
</author>
<published>2018-06-19T00:06:07Z</published>
<link rel='alternate' type='text/html' href='https://www.git.shady.money/git/commit/?id=e98317508c02b7cc65bf5b28f27788e47096b166'/>
<id>urn:sha1:e98317508c02b7cc65bf5b28f27788e47096b166</id>
<content type='text'>
Signed-off-by: Stefan Beller &lt;sbeller@google.com&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>Merge branch 'sb/submodule-update-try-harder'</title>
<updated>2018-05-30T05:04:12Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2018-05-30T05:04:12Z</published>
<link rel='alternate' type='text/html' href='https://www.git.shady.money/git/commit/?id=a173dddf4483ed11b228077078becc8b65174b46'/>
<id>urn:sha1:a173dddf4483ed11b228077078becc8b65174b46</id>
<content type='text'>
"git submodule update" attempts two different kinds of "git fetch"
against the upstream repository to grab a commit bound at the
submodule's path, but it incorrectly gave up if the first kind
(i.e. a normal fetch) failed, making the second "last resort" one
(i.e. fetching an exact commit object by object name) ineffective.
This has been corrected.

* sb/submodule-update-try-harder:
  git-submodule.sh: try harder to fetch a submodule
</content>
</entry>
<entry>
<title>Merge branch 'cf/submodule-progress-dissociate'</title>
<updated>2018-05-30T05:04:09Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2018-05-30T05:04:09Z</published>
<link rel='alternate' type='text/html' href='https://www.git.shady.money/git/commit/?id=2a98a8794eac7089d4e44f51b19e358a14eb6d3e'/>
<id>urn:sha1:2a98a8794eac7089d4e44f51b19e358a14eb6d3e</id>
<content type='text'>
"git submodule update" and "git submodule add" supported the
"--reference" option to borrow objects from a neighbouring local
repository like "git clone" does, but lacked the more recent
invention "--dissociate".  Also "git submodule add" has been taught
to take the "--progress" option.

* cf/submodule-progress-dissociate:
  submodule: add --dissociate option to add/update commands
  submodule: add --progress option to add command
  submodule: clean up substitutions in script
</content>
</entry>
<entry>
<title>Sync with Git 2.16.4</title>
<updated>2018-05-22T05:25:26Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2018-05-22T05:25:26Z</published>
<link rel='alternate' type='text/html' href='https://www.git.shady.money/git/commit/?id=68f95b26e43f8183b9d1cdd41f42e99da43152bf'/>
<id>urn:sha1:68f95b26e43f8183b9d1cdd41f42e99da43152bf</id>
<content type='text'>
* maint-2.16:
  Git 2.16.4
  Git 2.15.2
  Git 2.14.4
  Git 2.13.7
  verify_path: disallow symlinks in .gitmodules
  update-index: stat updated files earlier
  verify_dotfile: mention case-insensitivity in comment
  verify_path: drop clever fallthrough
  skip_prefix: add case-insensitive variant
  is_{hfs,ntfs}_dotgitmodules: add tests
  is_ntfs_dotgit: match other .git files
  is_hfs_dotgit: match other .git files
  is_ntfs_dotgit: use a size_t for traversing string
  submodule-config: verify submodule names as paths
</content>
</entry>
<entry>
<title>Sync with Git 2.15.2</title>
<updated>2018-05-22T05:18:06Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2018-05-22T05:18:06Z</published>
<link rel='alternate' type='text/html' href='https://www.git.shady.money/git/commit/?id=023020401d21c8c48d7f0a123c7ff50888e101c7'/>
<id>urn:sha1:023020401d21c8c48d7f0a123c7ff50888e101c7</id>
<content type='text'>
* maint-2.15:
  Git 2.15.2
  Git 2.14.4
  Git 2.13.7
  verify_path: disallow symlinks in .gitmodules
  update-index: stat updated files earlier
  verify_dotfile: mention case-insensitivity in comment
  verify_path: drop clever fallthrough
  skip_prefix: add case-insensitive variant
  is_{hfs,ntfs}_dotgitmodules: add tests
  is_ntfs_dotgit: match other .git files
  is_hfs_dotgit: match other .git files
  is_ntfs_dotgit: use a size_t for traversing string
  submodule-config: verify submodule names as paths
</content>
</entry>
</feed>
