Files
git/Documentation
Derrick Stolee b40a50264a fetch: document and test --refmap=""
To prevent long blocking time during a 'git fetch' call, a user
may want to set up a schedule for background 'git fetch' processes.
However, these runs will update the refs/remotes branches due to
the default refspec set in the config when Git adds a remote.
Hence the user will not notice when remote refs are updated during
their foreground fetches. In fact, they may _want_ those refs to
stay put so they can work with the refs from their last foreground
fetch call.

This can be accomplished by overriding the configured refspec using
'--refmap=' along with a custom refspec:

  git fetch --refmap='' <remote> +refs/heads/*:refs/hidden/<remote>/*

to populate a custom ref space and download a pack of the new
reachable objects. This kind of call allows a few things to happen:

1. We download a new pack if refs have updated.
2. Since the refs/hidden branches exist, GC will not remove the
   newly-downloaded data.
3. With fetch.writeCommitGraph enabled, the refs/hidden refs are
   used to update the commit-graph file.

To avoid the refs/hidden directory from filling without bound, the
--prune option can be included. When providing a refspec like this,
the --prune option does not delete remote refs and instead only
deletes refs in the target refspace.

Update the documentation to clarify how '--refmap=""' works and
create tests to guarantee this behavior remains in the future.

Signed-off-by: Derrick Stolee <dstolee@microsoft.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2020-01-21 10:24:48 -08:00
..
2019-12-06 16:31:40 +01:00
2019-05-09 00:37:27 +09:00
2018-06-25 13:22:36 -07:00
2019-01-23 11:37:29 -08:00
2019-12-06 16:31:39 +01:00
2019-08-07 12:37:33 -07:00
2019-01-23 11:37:29 -08:00
2019-08-11 17:40:07 -07:00
2019-08-11 17:40:07 -07:00
2019-04-25 16:41:14 +09:00
2019-04-02 13:57:00 +09:00
2019-08-11 17:40:07 -07:00
2019-08-05 12:39:39 -07:00
2019-01-23 11:37:29 -08:00
2019-03-18 14:45:21 +09:00
2019-07-11 15:16:48 -07:00
2019-08-06 13:05:39 -07:00
2019-04-02 13:57:00 +09:00
2018-12-26 14:59:37 -08:00
2019-05-07 13:04:48 +09:00
2019-12-06 16:31:39 +01:00
2019-05-07 13:04:48 +09:00
2019-05-07 13:04:48 +09:00
2019-04-02 13:57:00 +09:00
2019-10-06 12:25:16 +09:00
2019-09-12 11:06:33 -07:00