<feed xmlns='http://www.w3.org/2005/Atom'>
<title>git/builtin/fetch.c, branch v2.23.2</title>
<subtitle>Mirror of https://git.kernel.org/pub/scm/git/git.git/
</subtitle>
<id>https://git.shady.money/git/atom?h=v2.23.2</id>
<link rel='self' href='https://git.shady.money/git/atom?h=v2.23.2'/>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/'/>
<updated>2019-08-06T19:43:43Z</updated>
<entry>
<title>l10n: reformat some localized strings for v2.23.0</title>
<updated>2019-08-06T19:43:43Z</updated>
<author>
<name>Jean-Noël Avila</name>
<email>jn.avila@free.fr</email>
</author>
<published>2019-08-06T17:19:52Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=182f59daf04e5343a8965d84abe2cdae32ed5e81'/>
<id>urn:sha1:182f59daf04e5343a8965d84abe2cdae32ed5e81</id>
<content type='text'>
Signed-off-by: Jean-Noël Avila &lt;jn.avila@free.fr&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>Merge branch 'ds/fetch-disable-force-notice'</title>
<updated>2019-07-09T22:25:46Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2019-07-09T22:25:46Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=cde9a64ea35ceeaa5e8dd2da2662445510fe651c'/>
<id>urn:sha1:cde9a64ea35ceeaa5e8dd2da2662445510fe651c</id>
<content type='text'>
"git fetch" and "git pull" reports when a fetch results in
non-fast-forward updates to let the user notice unusual situation.
The commands learned "--no-shown-forced-updates" option to disable
this safety feature.

* ds/fetch-disable-force-notice:
  pull: add --[no-]show-forced-updates passthrough
  fetch: warn about forced updates in branch listing
  fetch: add --[no-]show-forced-updates argument
</content>
</entry>
<entry>
<title>Merge branch 'nd/fetch-multi-gc-once'</title>
<updated>2019-07-09T22:25:42Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2019-07-09T22:25:42Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=892d3fb71e75849811c038b9fcaf17188a9ccf5d'/>
<id>urn:sha1:892d3fb71e75849811c038b9fcaf17188a9ccf5d</id>
<content type='text'>
"git fetch" that grabs from a group of remotes learned to run the
auto-gc only once at the very end.

* nd/fetch-multi-gc-once:
  fetch: only run 'gc' once when fetching multiple remotes
</content>
</entry>
<entry>
<title>Merge branch 'ds/close-object-store'</title>
<updated>2019-07-09T22:25:37Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2019-07-09T22:25:37Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=5cb7c73589059b557f0d690ed6bcfde46ef2d234'/>
<id>urn:sha1:5cb7c73589059b557f0d690ed6bcfde46ef2d234</id>
<content type='text'>
The commit-graph file is now part of the "files that the runtime
may keep open file descriptors on, all of which would need to be
closed when done with the object store", and the file descriptor to
an existing commit-graph file now is closed before "gc" finalizes a
new instance to replace it.

* ds/close-object-store:
  packfile: rename close_all_packs to close_object_store
  packfile: close commit-graph in close_all_packs
  commit-graph: use raw_object_store when closing
</content>
</entry>
<entry>
<title>Merge branch 'fc/fetch-with-import-fix'</title>
<updated>2019-07-09T22:25:34Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2019-07-09T22:25:34Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=dbf491e9e947141eab7ffce65d6c97c121def6e0'/>
<id>urn:sha1:dbf491e9e947141eab7ffce65d6c97c121def6e0</id>
<content type='text'>
Code restructuring during 2.20 period broke fetching tags via
"import" based transports.

* fc/fetch-with-import-fix:
  fetch: fix regression with transport helpers
  fetch: make the code more understandable
  fetch: trivial cleanup
  t5801 (remote-helpers): add test to fetch tags
  t5801 (remote-helpers): cleanup refspec stuff
</content>
</entry>
<entry>
<title>fetch: warn about forced updates in branch listing</title>
<updated>2019-06-21T16:38:29Z</updated>
<author>
<name>Derrick Stolee</name>
<email>dstolee@microsoft.com</email>
</author>
<published>2019-06-18T20:25:27Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=377444b440eab3b6ef636df092f7f8299acf75bb'/>
<id>urn:sha1:377444b440eab3b6ef636df092f7f8299acf75bb</id>
<content type='text'>
The --[no-]show-forced-updates option in 'git fetch' can be confusing
for some users, especially if it is enabled via config setting and not
by argument. Add advice to warn the user that the (forced update)
messages were not listed.

Additionally, warn users when the forced update check takes longer
than ten seconds, and recommend that they disable the check. These
messages can be disabled by the advice.fetchShowForcedUpdates config
setting.

Signed-off-by: Derrick Stolee &lt;dstolee@microsoft.com&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>fetch: add --[no-]show-forced-updates argument</title>
<updated>2019-06-21T16:38:29Z</updated>
<author>
<name>Derrick Stolee</name>
<email>dstolee@microsoft.com</email>
</author>
<published>2019-06-18T20:25:26Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=cdbd70c43773d534aa81ea2c83905a45ff0e74e4'/>
<id>urn:sha1:cdbd70c43773d534aa81ea2c83905a45ff0e74e4</id>
<content type='text'>
After updating a set of remove refs during a 'git fetch', we walk the
commits in the new ref value and not in the old ref value to discover
if the update was a forced update. This results in two things happening
during the command:

 1. The line including the ref update has an additional "(forced-update)"
    marker at the end.

 2. The ref log for that remote branch includes a bit saying that update
    is a forced update.

For many situations, this forced-update message happens infrequently, or
is a small bit of information among many ref updates. Many users ignore
these messages, but the calculation required here slows down their fetches
significantly. Keep in mind that they do not have the opportunity to
calculate a commit-graph file containing the newly-fetched commits, so
these comparisons can be very slow.

Add a '--[no-]show-forced-updates' option that allows a user to skip this
calculation. The only permanent result is dropping the forced-update bit
in the reflog.

Include a new fetch.showForcedUpdates config setting that allows this
behavior without including the argument in every command. The config
setting is overridden by the command-line arguments.

Signed-off-by: Derrick Stolee &lt;dstolee@microsoft.com&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>fetch: only run 'gc' once when fetching multiple remotes</title>
<updated>2019-06-20T03:56:44Z</updated>
<author>
<name>Nguyễn Thái Ngọc Duy</name>
<email>pclouds@gmail.com</email>
</author>
<published>2019-06-19T09:46:30Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=c3d6b70338d0ac93f66142873f1606277dbe589f'/>
<id>urn:sha1:c3d6b70338d0ac93f66142873f1606277dbe589f</id>
<content type='text'>
In multiple remotes mode, git-fetch is launched for n-1 remotes and the
last remote is handled by the current process. Each of these processes
will in turn run 'gc' at the end.

This is not really a problem because even if multiple 'gc --auto' is run
at the same time we still handle it correctly. It does show multiple
"auto packing in the background" messages though. And we may waste some
resources when gc actually runs because we still do some stuff before
checking the lock and moving it to background.

So let's try to avoid that. We should only need one 'gc' run after all
objects and references are added anyway. Add a new option --no-auto-gc
that will be used by those n-1 processes. 'gc --auto' will always run on
the main fetch process (*).

(*) even if we fetch remotes in parallel at some point in future, this
    should still be fine because we should "join" all those processes
    before this step.

Signed-off-by: Nguyễn Thái Ngọc Duy &lt;pclouds@gmail.com&gt;
Acked-by: Jeff King &lt;peff@peff.net&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>packfile: rename close_all_packs to close_object_store</title>
<updated>2019-06-12T18:33:54Z</updated>
<author>
<name>Derrick Stolee</name>
<email>dstolee@microsoft.com</email>
</author>
<published>2019-05-17T18:41:49Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=2d511cfc0bfe1d2b98ba8b272ddd9ba83e84e5f8'/>
<id>urn:sha1:2d511cfc0bfe1d2b98ba8b272ddd9ba83e84e5f8</id>
<content type='text'>
The close_all_packs() method is now responsible for more than just pack-files.
It also closes the commit-graph and the multi-pack-index. Rename the function
to be more descriptive of its larger role. The name also fits because the
input parameter is a raw_object_store.

Signed-off-by: Derrick Stolee &lt;dstolee@microsoft.com&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>fetch: fix regression with transport helpers</title>
<updated>2019-06-04T18:28:58Z</updated>
<author>
<name>Felipe Contreras</name>
<email>felipe.contreras@gmail.com</email>
</author>
<published>2019-06-04T02:13:30Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=f80d922355302abf07bf0cf9a2135c2eaa61f502'/>
<id>urn:sha1:f80d922355302abf07bf0cf9a2135c2eaa61f502</id>
<content type='text'>
Commit e198b3a740 changed the behavior of fetch with regards to tags.
Before, null oids where not ignored, now they are, regardless of whether
the refs have been explicitly cleared or not.

  e198b3a740 (fetch: replace string-list used as a look-up table with a hashmap)

When using a transport helper the oids can certainly be null. So now
tags are ignored and fetching them is impossible.

This patch fixes that by having a specific flag that is set only when we
explicitly want to ignore the refs, restoring the original behavior.

Signed-off-by: Felipe Contreras &lt;felipe.contreras@gmail.com&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
</feed>
