Merge branch 'jc/pack-objects-bigfile'
* jc/pack-objects-bigfile: Teach core.bigfilethreashold to pack-objects
This commit is contained in:
commit
9cedd16c62
@ -442,8 +442,6 @@ for most projects as source code and other text files can still
|
|||||||
be delta compressed, but larger binary media files won't be.
|
be delta compressed, but larger binary media files won't be.
|
||||||
+
|
+
|
||||||
Common unit suffixes of 'k', 'm', or 'g' are supported.
|
Common unit suffixes of 'k', 'm', or 'g' are supported.
|
||||||
+
|
|
||||||
Currently only linkgit:git-fast-import[1] honors this setting.
|
|
||||||
|
|
||||||
core.excludesfile::
|
core.excludesfile::
|
||||||
In addition to '.gitignore' (per-directory) and
|
In addition to '.gitignore' (per-directory) and
|
||||||
|
@ -1142,8 +1142,12 @@ static void get_object_details(void)
|
|||||||
sorted_by_offset[i] = objects + i;
|
sorted_by_offset[i] = objects + i;
|
||||||
qsort(sorted_by_offset, nr_objects, sizeof(*sorted_by_offset), pack_offset_sort);
|
qsort(sorted_by_offset, nr_objects, sizeof(*sorted_by_offset), pack_offset_sort);
|
||||||
|
|
||||||
for (i = 0; i < nr_objects; i++)
|
for (i = 0; i < nr_objects; i++) {
|
||||||
check_object(sorted_by_offset[i]);
|
struct object_entry *entry = sorted_by_offset[i];
|
||||||
|
check_object(entry);
|
||||||
|
if (big_file_threshold <= entry->size)
|
||||||
|
entry->no_try_delta = 1;
|
||||||
|
}
|
||||||
|
|
||||||
free(sorted_by_offset);
|
free(sorted_by_offset);
|
||||||
}
|
}
|
||||||
|
1
cache.h
1
cache.h
@ -573,6 +573,7 @@ extern int core_compression_seen;
|
|||||||
extern size_t packed_git_window_size;
|
extern size_t packed_git_window_size;
|
||||||
extern size_t packed_git_limit;
|
extern size_t packed_git_limit;
|
||||||
extern size_t delta_base_cache_limit;
|
extern size_t delta_base_cache_limit;
|
||||||
|
extern unsigned long big_file_threshold;
|
||||||
extern int read_replace_refs;
|
extern int read_replace_refs;
|
||||||
extern int fsync_object_files;
|
extern int fsync_object_files;
|
||||||
extern int core_preload_index;
|
extern int core_preload_index;
|
||||||
|
6
config.c
6
config.c
@ -567,6 +567,12 @@ static int git_default_core_config(const char *var, const char *value)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!strcmp(var, "core.bigfilethreshold")) {
|
||||||
|
long n = git_config_int(var, value);
|
||||||
|
big_file_threshold = 0 < n ? n : 0;
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
if (!strcmp(var, "core.packedgitlimit")) {
|
if (!strcmp(var, "core.packedgitlimit")) {
|
||||||
packed_git_limit = git_config_int(var, value);
|
packed_git_limit = git_config_int(var, value);
|
||||||
return 0;
|
return 0;
|
||||||
|
@ -35,6 +35,7 @@ int fsync_object_files;
|
|||||||
size_t packed_git_window_size = DEFAULT_PACKED_GIT_WINDOW_SIZE;
|
size_t packed_git_window_size = DEFAULT_PACKED_GIT_WINDOW_SIZE;
|
||||||
size_t packed_git_limit = DEFAULT_PACKED_GIT_LIMIT;
|
size_t packed_git_limit = DEFAULT_PACKED_GIT_LIMIT;
|
||||||
size_t delta_base_cache_limit = 16 * 1024 * 1024;
|
size_t delta_base_cache_limit = 16 * 1024 * 1024;
|
||||||
|
unsigned long big_file_threshold = 512 * 1024 * 1024;
|
||||||
const char *pager_program;
|
const char *pager_program;
|
||||||
int pager_use_color = 1;
|
int pager_use_color = 1;
|
||||||
const char *editor_program;
|
const char *editor_program;
|
||||||
|
@ -274,7 +274,6 @@ struct recent_command {
|
|||||||
/* Configured limits on output */
|
/* Configured limits on output */
|
||||||
static unsigned long max_depth = 10;
|
static unsigned long max_depth = 10;
|
||||||
static off_t max_packsize;
|
static off_t max_packsize;
|
||||||
static uintmax_t big_file_threshold = 512 * 1024 * 1024;
|
|
||||||
static int force_update;
|
static int force_update;
|
||||||
static int pack_compression_level = Z_DEFAULT_COMPRESSION;
|
static int pack_compression_level = Z_DEFAULT_COMPRESSION;
|
||||||
static int pack_compression_seen;
|
static int pack_compression_seen;
|
||||||
@ -3206,10 +3205,6 @@ static int git_pack_config(const char *k, const char *v, void *cb)
|
|||||||
max_packsize = git_config_ulong(k, v);
|
max_packsize = git_config_ulong(k, v);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
if (!strcmp(k, "core.bigfilethreshold")) {
|
|
||||||
long n = git_config_int(k, v);
|
|
||||||
big_file_threshold = 0 < n ? n : 0;
|
|
||||||
}
|
|
||||||
return git_default_config(k, v, cb);
|
return git_default_config(k, v, cb);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user