In particular, if the user has set gc.auto to 0 or some other value, respect that setting. The gui-specific heuristic of assuming Windows filesystems will tolerate fewer loose objects has been carried over. This patch vastly increases the loose object count threshold for a sort of compatibility with the console-based git programs. The ideal threshold may be different since the user can easily turn down an offer to gc. But for now, let us assume that a number of loose objects that is tolerable when working from the command line will also be tolerable in the gui. Unfortunately, this duplicates code from builtin-gc.c. A proper fix would be involve teaching gc to cooperate with the gui more closely. Signed-off-by: Jonathan Nieder <jrnieder@xxxxxxxxx> --- That’s the end of the series. Thoughts? lib/database.tcl | 13 ++++++++++--- 1 files changed, 10 insertions(+), 3 deletions(-) diff --git a/lib/database.tcl b/lib/database.tcl index c8184de..4b07865 100644 --- a/lib/database.tcl +++ b/lib/database.tcl @@ -100,15 +100,22 @@ proc too_many_loose_objects {} { # distributed, we can check only one and get a reasonable # estimate. # - # Roughly based on the function of the same name in builtin-gc.c + # Based on the function of the same name in builtin-gc.c # # 'git gc' should learn a new --porcelain option # so it can take care of this. + + set gc_auto_threshold [get_config gc.auto] + if {$gc_auto_threshold eq {}} { + set gc_auto_threshold 6700 + } + if {$gc_auto_threshold <= 0} { + return 0 + } set ndirs 1 - set limit 8 + set limit [expr {($gc_auto_threshold + 255) / 256}] if {[is_Windows]} { set ndirs 4 - set limit 1 } set count [llength [glob \ -- 1.7.0 -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html