Merge branch 'jc/pack-objects-bigfile'

* jc/pack-objects-bigfile:
  Teach core.bigfilethreashold to pack-objects
This commit is contained in:
Junio C Hamano 2011-04-27 11:36:41 -07:00
commit 9cedd16c62
6 changed files with 14 additions and 9 deletions

View File

@ -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

View File

@ -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);
} }

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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);
} }