mirror of
https://github.com/git/git
synced 2024-08-27 19:49:21 +00:00
midx: enable core.multiPackIndex by default
The core.multiPackIndex setting has been around since c4d25228eb
(config: create core.multiPackIndex setting, 2018-07-12), but has been
disabled by default. If a user wishes to use the multi-pack-index
feature, then they must enable this config and run 'git multi-pack-index
write'.
The multi-pack-index feature is relatively stable now, so make the
config option true by default. For users that do not use a
multi-pack-index, the only extra cost will be a file lookup to see if a
multi-pack-index file exists (once per process, per object directory).
Also, this config option will be referenced by an upcoming
"incremental-repack" task in the maintenance builtin, so move the config
option into the repository settings struct. Note that if
GIT_TEST_MULTI_PACK_INDEX=1, then we want to ignore the config option
and treat core.multiPackIndex as enabled.
Signed-off-by: Derrick Stolee <dstolee@microsoft.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
3e220e6069
commit
18e449f86b
|
@ -606,8 +606,8 @@ core.useReplaceRefs::
|
||||||
|
|
||||||
core.multiPackIndex::
|
core.multiPackIndex::
|
||||||
Use the multi-pack-index file to track multiple packfiles using a
|
Use the multi-pack-index file to track multiple packfiles using a
|
||||||
single index. See link:technical/multi-pack-index.html[the
|
single index. See linkgit:git-multi-pack-index[1] for more
|
||||||
multi-pack-index design document].
|
information. Defaults to true.
|
||||||
|
|
||||||
core.sparseCheckout::
|
core.sparseCheckout::
|
||||||
Enable "sparse checkout" feature. See linkgit:git-sparse-checkout[1]
|
Enable "sparse checkout" feature. See linkgit:git-sparse-checkout[1]
|
||||||
|
|
11
midx.c
11
midx.c
|
@ -10,6 +10,7 @@
|
||||||
#include "progress.h"
|
#include "progress.h"
|
||||||
#include "trace2.h"
|
#include "trace2.h"
|
||||||
#include "run-command.h"
|
#include "run-command.h"
|
||||||
|
#include "repository.h"
|
||||||
|
|
||||||
#define MIDX_SIGNATURE 0x4d494458 /* "MIDX" */
|
#define MIDX_SIGNATURE 0x4d494458 /* "MIDX" */
|
||||||
#define MIDX_VERSION 1
|
#define MIDX_VERSION 1
|
||||||
|
@ -384,15 +385,9 @@ int prepare_multi_pack_index_one(struct repository *r, const char *object_dir, i
|
||||||
{
|
{
|
||||||
struct multi_pack_index *m;
|
struct multi_pack_index *m;
|
||||||
struct multi_pack_index *m_search;
|
struct multi_pack_index *m_search;
|
||||||
int config_value;
|
|
||||||
static int env_value = -1;
|
|
||||||
|
|
||||||
if (env_value < 0)
|
prepare_repo_settings(r);
|
||||||
env_value = git_env_bool(GIT_TEST_MULTI_PACK_INDEX, 0);
|
if (!r->settings.core_multi_pack_index)
|
||||||
|
|
||||||
if (!env_value &&
|
|
||||||
(repo_config_get_bool(r, "core.multipackindex", &config_value) ||
|
|
||||||
!config_value))
|
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
for (m_search = r->objects->multi_pack_index; m_search; m_search = m_search->next)
|
for (m_search = r->objects->multi_pack_index; m_search; m_search = m_search->next)
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
#include "cache.h"
|
#include "cache.h"
|
||||||
#include "config.h"
|
#include "config.h"
|
||||||
#include "repository.h"
|
#include "repository.h"
|
||||||
|
#include "midx.h"
|
||||||
|
|
||||||
#define UPDATE_DEFAULT_BOOL(s,v) do { if (s == -1) { s = v; } } while(0)
|
#define UPDATE_DEFAULT_BOOL(s,v) do { if (s == -1) { s = v; } } while(0)
|
||||||
|
|
||||||
|
@ -47,6 +48,11 @@ void prepare_repo_settings(struct repository *r)
|
||||||
r->settings.pack_use_sparse = value;
|
r->settings.pack_use_sparse = value;
|
||||||
UPDATE_DEFAULT_BOOL(r->settings.pack_use_sparse, 1);
|
UPDATE_DEFAULT_BOOL(r->settings.pack_use_sparse, 1);
|
||||||
|
|
||||||
|
value = git_env_bool(GIT_TEST_MULTI_PACK_INDEX, 0);
|
||||||
|
if (value || !repo_config_get_bool(r, "core.multipackindex", &value))
|
||||||
|
r->settings.core_multi_pack_index = value;
|
||||||
|
UPDATE_DEFAULT_BOOL(r->settings.core_multi_pack_index, 1);
|
||||||
|
|
||||||
if (!repo_config_get_bool(r, "feature.manyfiles", &value) && value) {
|
if (!repo_config_get_bool(r, "feature.manyfiles", &value) && value) {
|
||||||
UPDATE_DEFAULT_BOOL(r->settings.index_version, 4);
|
UPDATE_DEFAULT_BOOL(r->settings.index_version, 4);
|
||||||
UPDATE_DEFAULT_BOOL(r->settings.core_untracked_cache, UNTRACKED_CACHE_WRITE);
|
UPDATE_DEFAULT_BOOL(r->settings.core_untracked_cache, UNTRACKED_CACHE_WRITE);
|
||||||
|
|
|
@ -37,6 +37,8 @@ struct repo_settings {
|
||||||
|
|
||||||
int pack_use_sparse;
|
int pack_use_sparse;
|
||||||
enum fetch_negotiation_setting fetch_negotiation_algorithm;
|
enum fetch_negotiation_setting fetch_negotiation_algorithm;
|
||||||
|
|
||||||
|
int core_multi_pack_index;
|
||||||
};
|
};
|
||||||
|
|
||||||
struct repository {
|
struct repository {
|
||||||
|
|
Loading…
Reference in a new issue