diff options
author | Joachim B Haga <cjhaga@fys.uio.no> | 2006-07-03 22:11:47 +0200 |
---|---|---|
committer | Junio C Hamano <junkio@cox.net> | 2006-07-03 13:55:11 -0700 |
commit | 12f6c308d53509dcb11e309604457d21d60438db (patch) | |
tree | c4aa1d1649c4ae179f31cd770da328a82ed37a5c /config.c | |
parent | 8fced61cbc32f0c4b81a3dcecfeb40b7d96339ce (diff) | |
download | git-12f6c308d53509dcb11e309604457d21d60438db.tar.gz git-12f6c308d53509dcb11e309604457d21d60438db.tar.xz |
Make zlib compression level configurable, and change default.
With the change in default, "git add ." on kernel dir is about
twice as fast as before, with only minimal (0.5%) change in
object size. The speed difference is even more noticeable
when committing large files, which is now up to 8 times faster.
The configurability is through setting core.compression = [-1..9]
which maps to the zlib constants; -1 is the default, 0 is no
compression, and 1..9 are various speed/size tradeoffs, 9
being slowest.
Signed-off-by: Joachim B Haga (cjhaga@fys.uio.no)
Acked-by: Linus Torvalds <torvalds@osdl.org>
Signed-off-by: Junio C Hamano <junkio@cox.net>
Diffstat (limited to 'config.c')
-rw-r--r-- | config.c | 10 |
1 files changed, 10 insertions, 0 deletions
@@ -279,6 +279,16 @@ int git_default_config(const char *var, const char *value) return 0; } + if (!strcmp(var, "core.compression")) { + int level = git_config_int(var, value); + if (level == -1) + level = Z_DEFAULT_COMPRESSION; + else if (level < 0 || level > Z_BEST_COMPRESSION) + die("bad zlib compression level %d", level); + zlib_compression_level = level; + return 0; + } + if (!strcmp(var, "user.name")) { strlcpy(git_default_name, value, sizeof(git_default_name)); return 0; |