<feed xmlns='http://www.w3.org/2005/Atom'>
<title>git/submodule.c, branch v2.11.4</title>
<subtitle>Mirror of https://git.kernel.org/pub/scm/git/git.git/
</subtitle>
<id>https://www.git.shady.money/git/atom?h=v2.11.4</id>
<link rel='self' href='https://www.git.shady.money/git/atom?h=v2.11.4'/>
<link rel='alternate' type='text/html' href='https://www.git.shady.money/git/'/>
<updated>2017-01-17T22:49:27Z</updated>
<entry>
<title>Merge branch 'bw/push-dry-run' into maint</title>
<updated>2017-01-17T22:49:27Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2017-01-17T22:49:27Z</published>
<link rel='alternate' type='text/html' href='https://www.git.shady.money/git/commit/?id=3075e40c75560d93b569d1bba715008ca734ad83'/>
<id>urn:sha1:3075e40c75560d93b569d1bba715008ca734ad83</id>
<content type='text'>
"git push --dry-run --recurse-submodule=on-demand" wasn't
"--dry-run" in the submodules.

* bw/push-dry-run:
  push: fix --dry-run to not push submodules
  push: --dry-run updates submodules when --recurse-submodules=on-demand
</content>
</entry>
<entry>
<title>Merge branch 'hv/submodule-not-yet-pushed-fix' into maint</title>
<updated>2017-01-17T22:49:26Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2017-01-17T22:49:26Z</published>
<link rel='alternate' type='text/html' href='https://www.git.shady.money/git/commit/?id=9da9965ba6672dc0016a5ac694271bbdd4589e15'/>
<id>urn:sha1:9da9965ba6672dc0016a5ac694271bbdd4589e15</id>
<content type='text'>
The code in "git push" to compute if any commit being pushed in the
superproject binds a commit in a submodule that hasn't been pushed
out was overly inefficient, making it unusable even for a small
project that does not have any submodule but have a reasonable
number of refs.

* hv/submodule-not-yet-pushed-fix:
  submodule_needs_pushing(): explain the behaviour when we cannot answer
  batch check whether submodule needs pushing into one call
  serialize collection of refs that contain submodule changes
  serialize collection of changed submodules
</content>
</entry>
<entry>
<title>push: fix --dry-run to not push submodules</title>
<updated>2016-11-23T16:39:14Z</updated>
<author>
<name>Brandon Williams</name>
<email>bmwill@google.com</email>
</author>
<published>2016-11-17T18:46:04Z</published>
<link rel='alternate' type='text/html' href='https://www.git.shady.money/git/commit/?id=0301c821c5cd124733accfbff0ddbf7f0b0ee9fb'/>
<id>urn:sha1:0301c821c5cd124733accfbff0ddbf7f0b0ee9fb</id>
<content type='text'>
Teach push to respect the --dry-run option when configured to
recursively push submodules 'on-demand'.  This is done by passing the
--dry-run flag to the child process which performs a push for a
submodules when performing a dry-run.

In order to preserve good user experience, the additional check for
unpushed submodules is skipped during a dry-run when
--recurse-submodules=on-demand.  The check is skipped because the submodule
pushes were performed as dry-runs and this check would always fail as the
submodules would still need to be pushed.

Signed-off-by: Brandon Williams &lt;bmwill@google.com&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>submodule_needs_pushing(): explain the behaviour when we cannot answer</title>
<updated>2016-11-16T19:13:58Z</updated>
<author>
<name>Heiko Voigt</name>
<email>hvoigt@hvoigt.net</email>
</author>
<published>2016-11-16T15:11:07Z</published>
<link rel='alternate' type='text/html' href='https://www.git.shady.money/git/commit/?id=250ab24ab3a35d5857855a2e00483dcd8867fdca'/>
<id>urn:sha1:250ab24ab3a35d5857855a2e00483dcd8867fdca</id>
<content type='text'>
When we do not have commits that are involved in the update of the
superproject in our copy of submodule, we cannot tell if the remote
end needs to acquire these commits to be able to check out the
superproject tree.  Explain why we answer "no there is no need/point
in pushing from our submodule repository" in this case.

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>batch check whether submodule needs pushing into one call</title>
<updated>2016-11-16T19:12:50Z</updated>
<author>
<name>Heiko Voigt</name>
<email>hvoigt@hvoigt.net</email>
</author>
<published>2016-11-16T15:11:06Z</published>
<link rel='alternate' type='text/html' href='https://www.git.shady.money/git/commit/?id=5b6607d23f8a262e1c0ede954f0477664934eed8'/>
<id>urn:sha1:5b6607d23f8a262e1c0ede954f0477664934eed8</id>
<content type='text'>
We run a command for each sha1 change in a submodule. This is
unnecessary since we can simply batch all sha1's we want to check into
one command. Lets do it so we can speedup the check when many submodule
changes are in need of checking.

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>serialize collection of refs that contain submodule changes</title>
<updated>2016-11-16T19:12:50Z</updated>
<author>
<name>Heiko Voigt</name>
<email>hvoigt@hvoigt.net</email>
</author>
<published>2016-11-16T15:11:05Z</published>
<link rel='alternate' type='text/html' href='https://www.git.shady.money/git/commit/?id=9cfa1c260fd10dadb2dfbb62f8e120a10cabfd06'/>
<id>urn:sha1:9cfa1c260fd10dadb2dfbb62f8e120a10cabfd06</id>
<content type='text'>
We are iterating over each pushed ref and want to check whether it
contains changes to submodules. Instead of immediately checking each ref
lets first collect them and then do the check for all of them in one
revision walk.

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>serialize collection of changed submodules</title>
<updated>2016-11-16T19:12:50Z</updated>
<author>
<name>Heiko Voigt</name>
<email>hvoigt@hvoigt.net</email>
</author>
<published>2016-11-16T15:11:04Z</published>
<link rel='alternate' type='text/html' href='https://www.git.shady.money/git/commit/?id=147394470c4be34038e520e74a017da6a3745e90'/>
<id>urn:sha1:147394470c4be34038e520e74a017da6a3745e90</id>
<content type='text'>
To check whether a submodule needs to be pushed we need to collect all
changed submodules. Lets collect them first and then execute the
possibly expensive test whether certain revisions are already pushed
only once per submodule.

There is further potential for optimization since we can assemble one
command and only issued that instead of one call for each remote ref in
the submodule.

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>Merge branch 'rs/cocci'</title>
<updated>2016-10-17T20:25:21Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2016-10-17T20:25:21Z</published>
<link rel='alternate' type='text/html' href='https://www.git.shady.money/git/commit/?id=69e6544998892a2bd3c785cd238c786da40cf6a3'/>
<id>urn:sha1:69e6544998892a2bd3c785cd238c786da40cf6a3</id>
<content type='text'>
Code cleanup.

* rs/cocci:
  use strbuf_add_unique_abbrev() for adding short hashes, part 3
  remove unnecessary NULL check before free(3)
</content>
</entry>
<entry>
<title>Merge branch 'jk/alt-odb-cleanup'</title>
<updated>2016-10-17T20:25:20Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2016-10-17T20:25:19Z</published>
<link rel='alternate' type='text/html' href='https://www.git.shady.money/git/commit/?id=dec040192fde87fb3249a3d53f802decd84fa7b7'/>
<id>urn:sha1:dec040192fde87fb3249a3d53f802decd84fa7b7</id>
<content type='text'>
Codepaths involved in interacting alternate object store have
been cleaned up.

* jk/alt-odb-cleanup:
  alternates: use fspathcmp to detect duplicates
  sha1_file: always allow relative paths to alternates
  count-objects: report alternates via verbose mode
  fill_sha1_file: write into a strbuf
  alternates: store scratch buffer as strbuf
  fill_sha1_file: write "boring" characters
  alternates: use a separate scratch space
  alternates: encapsulate alt-&gt;base munging
  alternates: provide helper for allocating alternate
  alternates: provide helper for adding to alternates list
  link_alt_odb_entry: refactor string handling
  link_alt_odb_entry: handle normalize_path errors
  t5613: clarify "too deep" recursion tests
  t5613: do not chdir in main process
  t5613: whitespace/style cleanups
  t5613: use test_must_fail
  t5613: drop test_valid_repo function
  t5613: drop reachable_via function
</content>
</entry>
<entry>
<title>alternates: provide helper for adding to alternates list</title>
<updated>2016-10-10T20:52:36Z</updated>
<author>
<name>Jeff King</name>
<email>peff@peff.net</email>
</author>
<published>2016-10-03T20:35:03Z</published>
<link rel='alternate' type='text/html' href='https://www.git.shady.money/git/commit/?id=a5b34d21521c015cd41ced4a3fdde57d79891eb3'/>
<id>urn:sha1:a5b34d21521c015cd41ced4a3fdde57d79891eb3</id>
<content type='text'>
The submodule code wants to temporarily add an alternate
object store to our in-memory alt_odb list, but does it
manually. Let's provide a helper so it can reuse the code in
link_alt_odb_entry().

While we're adding our new add_to_alternates_memory(), let's
document add_to_alternates_file(), as the two are related.

Signed-off-by: Jeff King &lt;peff@peff.net&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
</feed>
