Here is a series of patches on top of next, which use strbufs in even more places. Most notably, it uses it in the commit pretty printer (and commit message formatter), and it supersedes definitely read_fd (previously in sha1_file.c). The latter is not strictly speaking necessary, but strbuf_read and read_fd do almost the same. The sole difference is that read_fd use custom reallocation mechanisms (which is bad now that strbufs exists) though had a different semantics when an error occurs. Though, like for strbuf_read, read_fd callers either die() or discard the buffer, and current strbuf_read semantics works with that. As a result we once again have a nice reduction of the code lines. $ git diff --shortstat origin/next strbuf.* 2 files changed, 24 insertions(+), 0 deletions(-) $ git diff --shortstat origin/next ^strbuf.* 16 files changed, 270 insertions(+), 466 deletions(-) I feel that with the current series commit.c can be simplified further, but the patch was big enough as is already. If this series will be rewritten for this or this reason, please note that I found a memory leak (not a severe one though) in builtin-archive.c, where the "fmt" pointer is allocated and never freed. Cheers, - 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