@@ -41,9 +41,21 @@ static const char incremental_bitmap_conflict_error[] = N_(
41
41
"--no-write-bitmap-index or disable the pack.writebitmaps configuration."
42
42
);
43
43
44
+ struct pack_objects_args {
45
+ const char * window ;
46
+ const char * window_memory ;
47
+ const char * depth ;
48
+ const char * threads ;
49
+ const char * max_pack_size ;
50
+ int no_reuse_delta ;
51
+ int no_reuse_object ;
52
+ int quiet ;
53
+ int local ;
54
+ };
44
55
45
56
static int repack_config (const char * var , const char * value , void * cb )
46
57
{
58
+ struct pack_objects_args * cruft_po_args = cb ;
47
59
if (!strcmp (var , "repack.usedeltabaseoffset" )) {
48
60
delta_base_offset = git_config_bool (var , value );
49
61
return 0 ;
@@ -65,6 +77,14 @@ static int repack_config(const char *var, const char *value, void *cb)
65
77
run_update_server_info = git_config_bool (var , value );
66
78
return 0 ;
67
79
}
80
+ if (!strcmp (var , "repack.cruftwindow" ))
81
+ return git_config_string (& cruft_po_args -> window , var , value );
82
+ if (!strcmp (var , "repack.cruftwindowmemory" ))
83
+ return git_config_string (& cruft_po_args -> window_memory , var , value );
84
+ if (!strcmp (var , "repack.cruftdepth" ))
85
+ return git_config_string (& cruft_po_args -> depth , var , value );
86
+ if (!strcmp (var , "repack.cruftthreads" ))
87
+ return git_config_string (& cruft_po_args -> threads , var , value );
68
88
return git_default_config (var , value , cb );
69
89
}
70
90
@@ -157,18 +177,6 @@ static void remove_redundant_pack(const char *dir_name, const char *base_name)
157
177
strbuf_release (& buf );
158
178
}
159
179
160
- struct pack_objects_args {
161
- const char * window ;
162
- const char * window_memory ;
163
- const char * depth ;
164
- const char * threads ;
165
- const char * max_pack_size ;
166
- int no_reuse_delta ;
167
- int no_reuse_object ;
168
- int quiet ;
169
- int local ;
170
- };
171
-
172
180
static void prepare_pack_objects (struct child_process * cmd ,
173
181
const struct pack_objects_args * args )
174
182
{
@@ -692,6 +700,7 @@ int cmd_repack(int argc, const char **argv, const char *prefix)
692
700
int keep_unreachable = 0 ;
693
701
struct string_list keep_pack_list = STRING_LIST_INIT_NODUP ;
694
702
struct pack_objects_args po_args = {NULL };
703
+ struct pack_objects_args cruft_po_args = {NULL };
695
704
int geometric_factor = 0 ;
696
705
int write_midx = 0 ;
697
706
@@ -746,7 +755,7 @@ int cmd_repack(int argc, const char **argv, const char *prefix)
746
755
OPT_END ()
747
756
};
748
757
749
- git_config (repack_config , NULL );
758
+ git_config (repack_config , & cruft_po_args );
750
759
751
760
argc = parse_options (argc , argv , prefix , builtin_repack_options ,
752
761
git_repack_usage , 0 );
@@ -921,7 +930,19 @@ int cmd_repack(int argc, const char **argv, const char *prefix)
921
930
if (* pack_prefix == '/' )
922
931
pack_prefix ++ ;
923
932
924
- ret = write_cruft_pack (& po_args , pack_prefix , & names ,
933
+ if (!cruft_po_args .window )
934
+ cruft_po_args .window = po_args .window ;
935
+ if (!cruft_po_args .window_memory )
936
+ cruft_po_args .window_memory = po_args .window_memory ;
937
+ if (!cruft_po_args .depth )
938
+ cruft_po_args .depth = po_args .depth ;
939
+ if (!cruft_po_args .threads )
940
+ cruft_po_args .threads = po_args .threads ;
941
+
942
+ cruft_po_args .local = po_args .local ;
943
+ cruft_po_args .quiet = po_args .quiet ;
944
+
945
+ ret = write_cruft_pack (& cruft_po_args , pack_prefix , & names ,
925
946
& existing_nonkept_packs ,
926
947
& existing_kept_packs );
927
948
if (ret )
0 commit comments