<feed xmlns='http://www.w3.org/2005/Atom'>
<title>git/submodule.h, branch v1.7.11</title>
<subtitle>Mirror of https://git.kernel.org/pub/scm/git/git.git/
</subtitle>
<id>https://www.git.shady.money/git/atom?h=v1.7.11</id>
<link rel='self' href='https://www.git.shady.money/git/atom?h=v1.7.11'/>
<link rel='alternate' type='text/html' href='https://www.git.shady.money/git/'/>
<updated>2012-04-24T21:40:20Z</updated>
<entry>
<title>Merge branch 'hv/submodule-recurse-push'</title>
<updated>2012-04-24T21:40:20Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2012-04-24T21:40:20Z</published>
<link rel='alternate' type='text/html' href='https://www.git.shady.money/git/commit/?id=419f2ecf7894726773f7ea5620741ce8ec60e553'/>
<id>urn:sha1:419f2ecf7894726773f7ea5620741ce8ec60e553</id>
<content type='text'>
"git push --recurse-submodules" learns to optionally look into the
histories of submodules bound to the superproject and push them out.

By Heiko Voigt
* hv/submodule-recurse-push:
  push: teach --recurse-submodules the on-demand option
  Refactor submodule push check to use string list instead of integer
  Teach revision walking machinery to walk multiple times sequencially
</content>
</entry>
<entry>
<title>submodule: fix prototype of gitmodules_config</title>
<updated>2012-04-10T19:27:54Z</updated>
<author>
<name>René Scharfe</name>
<email>rene.scharfe@lsrfire.ath.cx</email>
</author>
<published>2012-04-10T19:10:26Z</published>
<link rel='alternate' type='text/html' href='https://www.git.shady.money/git/commit/?id=c2df7585efcced5833891938fe01c24c9fb36dd7'/>
<id>urn:sha1:c2df7585efcced5833891938fe01c24c9fb36dd7</id>
<content type='text'>
Add void to make it match its definition in submodule.c.

Signed-off-by: Rene Scharfe &lt;rene.scharfe@lsrfire.ath.cx&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>push: teach --recurse-submodules the on-demand option</title>
<updated>2012-03-30T16:02:55Z</updated>
<author>
<name>Heiko Voigt</name>
<email>hvoigt@hvoigt.net</email>
</author>
<published>2012-03-29T07:21:24Z</published>
<link rel='alternate' type='text/html' href='https://www.git.shady.money/git/commit/?id=eb21c732d6b642a8f33abd69071a95de01d5061b'/>
<id>urn:sha1:eb21c732d6b642a8f33abd69071a95de01d5061b</id>
<content type='text'>
When using this option git will search for all submodules that
have changed in the revisions to be send. It will then try to
push the currently checked out branch of each submodule.

This helps when a user has finished working on a change which
involves submodules and just wants to push everything in one go.

Signed-off-by: Fredrik Gustafsson &lt;iveqy@iveqy.com&gt;
Mentored-by: Jens Lehmann &lt;Jens.Lehmann@web.de&gt;
Mentored-by: Heiko Voigt &lt;hvoigt@hvoigt.net&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>Refactor submodule push check to use string list instead of integer</title>
<updated>2012-03-30T15:58:31Z</updated>
<author>
<name>Heiko Voigt</name>
<email>hvoigt@hvoigt.net</email>
</author>
<published>2012-03-29T07:21:23Z</published>
<link rel='alternate' type='text/html' href='https://www.git.shady.money/git/commit/?id=a762e51ef2a39b0c326a1529dbe7f4cb303960db'/>
<id>urn:sha1:a762e51ef2a39b0c326a1529dbe7f4cb303960db</id>
<content type='text'>
This allows us to tell the user which submodules have not been pushed.
Additionally this is helpful when we want to automatically try to push
submodules that have not been pushed.

Signed-off-by: Heiko Voigt &lt;hvoigt@hvoigt.net&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>submodule: Search for merges only at end of recursive merge</title>
<updated>2011-10-13T17:18:16Z</updated>
<author>
<name>Brad King</name>
<email>brad.king@kitware.com</email>
</author>
<published>2011-10-13T12:59:05Z</published>
<link rel='alternate' type='text/html' href='https://www.git.shady.money/git/commit/?id=80988783c8c417c5e914256b43ed3604cc8fa4c3'/>
<id>urn:sha1:80988783c8c417c5e914256b43ed3604cc8fa4c3</id>
<content type='text'>
The submodule merge search is not useful during virtual merges because
the results cannot be used automatically.  Furthermore any suggestions
made by the search may apply to commits different than HEAD:sub and
MERGE_HEAD:sub, thus confusing the user.  Skip searching for submodule
merges during a virtual merge such as that between B and C while merging
the heads of:

    B---BC
   / \ /
  A   X
   \ / \
    C---CB

Run the search only when the recursion level is zero (!o-&gt;call_depth).
This fixes known breakage tested in t7405-submodule-merge.

Signed-off-by: Brad King &lt;brad.king@kitware.com&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>push: Don't push a repository with unpushed submodules</title>
<updated>2011-08-21T06:03:52Z</updated>
<author>
<name>Fredrik Gustafsson</name>
<email>iveqy@iveqy.com</email>
</author>
<published>2011-08-19T22:08:47Z</published>
<link rel='alternate' type='text/html' href='https://www.git.shady.money/git/commit/?id=d2b17b3220cbd75b1c8e2aa6cfdc5c121749c97d'/>
<id>urn:sha1:d2b17b3220cbd75b1c8e2aa6cfdc5c121749c97d</id>
<content type='text'>
When working with submodules it is easy to forget to push a
submodule to the server but pushing a super-project that
contains a commit for that submodule. The result is that the
superproject points at a submodule commit that is not available
on the server.

This adds the option --recurse-submodules=check to push. When
using this option git will check that all submodule commits that
are about to be pushed are present on a remote of the submodule.

To be able to use a combined diff, disabling a diff callback has
been removed from combined-diff.c.

Signed-off-by: Fredrik Gustafsson &lt;iveqy@iveqy.com&gt;
Mentored-by: Jens Lehmann &lt;Jens.Lehmann@web.de&gt;
Mentored-by: Heiko Voigt &lt;hvoigt@hvoigt.net&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>fetch/pull: Add the 'on-demand' value to the --recurse-submodules option</title>
<updated>2011-03-09T21:10:35Z</updated>
<author>
<name>Jens Lehmann</name>
<email>Jens.Lehmann@web.de</email>
</author>
<published>2011-03-06T22:11:21Z</published>
<link rel='alternate' type='text/html' href='https://www.git.shady.money/git/commit/?id=8f0700dd33f63e594b9b34c84efe94e670ea4f45'/>
<id>urn:sha1:8f0700dd33f63e594b9b34c84efe94e670ea4f45</id>
<content type='text'>
Until now the --recurse-submodules option could only be used to either
fetch all populated submodules recursively or to disable recursion
completely. As fetch and pull now by default just fetch those submodules
for which new commits have been fetched in the superproject, a command
line option to enforce that behavior is needed to be able to override
configuration settings.

Signed-off-by: Jens Lehmann &lt;Jens.Lehmann@web.de&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>fetch/pull: recurse into submodules when necessary</title>
<updated>2011-03-09T21:10:35Z</updated>
<author>
<name>Jens Lehmann</name>
<email>Jens.Lehmann@web.de</email>
</author>
<published>2011-03-06T22:10:46Z</published>
<link rel='alternate' type='text/html' href='https://www.git.shady.money/git/commit/?id=88a21979c5717e3f37b9691e90b6dbf2b94c751a'/>
<id>urn:sha1:88a21979c5717e3f37b9691e90b6dbf2b94c751a</id>
<content type='text'>
To be able to access all commits of populated submodules referenced by the
superproject it is sufficient to only then let "git fetch" recurse into a
submodule when the new commits fetched in the superproject record new
commits for it. Having these commits present is extremely useful when
using the "--submodule" option to "git diff" (which is what "git gui" and
"gitk" do since 1.6.6), as all submodule commits needed for creating a
descriptive output can be accessed. Also merging submodule commits (added
in 1.7.3) depends on the submodule commits in question being present to
work. Last but not least this enables disconnected operation when using
submodules, as all commits necessary for a successful "git submodule
update -N" will have been fetched automatically. So we choose this mode as
the default for fetch and pull.

Before a new or changed ref from upstream is updated in update_local_ref()
"git rev-list &lt;new-sha1&gt; --not --branches --remotes" is used to determine
all newly fetched commits. These are then walked and diffed against their
parent(s) to see if a submodule has been changed. If that is the case, its
path is stored to be fetched after the superproject fetch is completed.

Using the "--recurse-submodules" or the "--no-recurse-submodules" option
disables the examination of the fetched refs because the result will be
ignored anyway.

There is currently no infrastructure for storing deleted and new
submodules in the .git directory of the superproject. That's why fetch and
pull for now only fetch submodules that are already checked out and are
not renamed.

In t7403 the "--no-recurse-submodules" argument had to be added to "git
pull" to avoid failure because of the moved upstream submodule repo.

Thanks-to: Jonathan Nieder &lt;jrnieder@gmail.com&gt;
Thanks-to: Heiko Voigt &lt;hvoigt@hvoigt.net&gt;
Signed-off-by: Jens Lehmann &lt;Jens.Lehmann@web.de&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>Add the 'fetch.recurseSubmodules' config setting</title>
<updated>2010-11-12T23:06:03Z</updated>
<author>
<name>Jens Lehmann</name>
<email>Jens.Lehmann@web.de</email>
</author>
<published>2010-11-10T23:55:02Z</published>
<link rel='alternate' type='text/html' href='https://www.git.shady.money/git/commit/?id=be254a0ea99b441a6c514cb8b25cd72357383700'/>
<id>urn:sha1:be254a0ea99b441a6c514cb8b25cd72357383700</id>
<content type='text'>
This new boolean option can be used to override the default for "git
fetch" and "git pull", which is to not recurse into populated submodules
and fetch all new commits there too.

Signed-off-by: Jens Lehmann &lt;Jens.Lehmann@web.de&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>fetch/pull: Add the --recurse-submodules option</title>
<updated>2010-11-12T23:06:03Z</updated>
<author>
<name>Jens Lehmann</name>
<email>Jens.Lehmann@web.de</email>
</author>
<published>2010-11-12T12:54:52Z</published>
<link rel='alternate' type='text/html' href='https://www.git.shady.money/git/commit/?id=7dce19d374a37932e9d4c3a6202af407cf5114eb'/>
<id>urn:sha1:7dce19d374a37932e9d4c3a6202af407cf5114eb</id>
<content type='text'>
Until now you had to call "git submodule update" (without -N|--no-fetch
option) or something like "git submodule foreach git fetch" to fetch
new commits in populated submodules from their remote.

This could lead to "(commits not present)" messages in the output of
"git diff --submodule" (which is used by "git gui" and "gitk") after
fetching or pulling new commits in the superproject and is an obstacle for
implementing recursive checkout of submodules. Also "git submodule
update" cannot fetch changes when disconnected, so it was very easy to
forget to fetch the submodule changes before disconnecting only to
discover later that they are needed.

This patch adds the "--recurse-submodules" option to recursively fetch
each populated submodule from the url configured in the .git/config of the
submodule at the end of each "git fetch" or during "git pull" in the
superproject. The submodule paths are taken from the index.

The hidden option "--submodule-prefix" is added to "git fetch" to be able
to print out the full paths of nested submodules.

Signed-off-by: Jens Lehmann &lt;Jens.Lehmann@web.de&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
</feed>
