зеркало из https://github.com/microsoft/git.git
fetch: use gvfs-helper prefetch under config
The gvfs-helper allows us to download prefetch packs using a simple subprocess call. The gvfs-helper-client.h method will automatically compute the timestamp if passing 0, and passing NULL for the number of downloaded packs is valid. Signed-off-by: Derrick Stolee <dstolee@microsoft.com>
This commit is contained in:
Родитель
b6bcbbc209
Коммит
37f7069aea
|
@ -761,6 +761,10 @@ core.gvfs::
|
|||
is first accessed and brought down to the client. Git.exe can't
|
||||
currently tell the first access vs subsequent accesses so this
|
||||
flag just blocks them from occurring at all.
|
||||
GVFS_PREFETCH_DURING_FETCH::
|
||||
Bit value 128
|
||||
While performing a `git fetch` command, use the gvfs-helper to
|
||||
perform a "prefetch" of commits and trees.
|
||||
--
|
||||
|
||||
core.useGvfsHelper::
|
||||
|
|
|
@ -13,6 +13,8 @@
|
|||
#include "string-list.h"
|
||||
#include "remote.h"
|
||||
#include "transport.h"
|
||||
#include "gvfs.h"
|
||||
#include "gvfs-helper-client.h"
|
||||
#include "run-command.h"
|
||||
#include "parse-options.h"
|
||||
#include "sigchain.h"
|
||||
|
@ -2217,6 +2219,9 @@ int cmd_fetch(int argc, const char **argv, const char *prefix)
|
|||
}
|
||||
}
|
||||
|
||||
if (core_gvfs & GVFS_PREFETCH_DURING_FETCH)
|
||||
gh_client__prefetch(0, NULL);
|
||||
|
||||
if (negotiate_only) {
|
||||
struct oidset acked_commits = OIDSET_INIT;
|
||||
struct oidset_iter iter;
|
||||
|
|
1
gvfs.h
1
gvfs.h
|
@ -17,6 +17,7 @@
|
|||
#define GVFS_NO_DELETE_OUTSIDE_SPARSECHECKOUT (1 << 3)
|
||||
#define GVFS_FETCH_SKIP_REACHABILITY_AND_UPLOADPACK (1 << 4)
|
||||
#define GVFS_BLOCK_FILTERS_AND_EOL_CONVERSIONS (1 << 6)
|
||||
#define GVFS_PREFETCH_DURING_FETCH (1 << 7)
|
||||
|
||||
void gvfs_load_config_value(const char *value);
|
||||
int gvfs_config_is_set(int mask);
|
||||
|
|
Загрузка…
Ссылка в новой задаче