On Tue, Jun 30, 2009 at 02:22:43PM -0700, Eric Raible wrote: > Unfortunately --format seems to turn off -z (at least in msysgit): > > $ git --version > git version 1.6.3.2.1299.gee46c > $ git log -p > L1 > $ git log -p -z > L2 > $ diff L1 L2 | wc > 2415 4347 62889 > $ git log -p --format=%s > L1 > $ git log -p -z --format=%s > L2 > $ diff L1 L2 | wc > 0 0 0 Ugh. I did some looking into this. It actually does work if you do: git log -p -z --pretty=format:%s rather than git log -p -z --pretty=tformat:%s And --format=%s behaves as if 'tformat' was given. And if you are not up to date on the difference, "format" implies "separator semantics", where the NUL is placed _between_ each record. "tformat" implies "terminator semantics", where the NUL is placed at the end. Placing the separator correctly is fairly easy; when we start a new record, if we are not the first, we print the separator. Placing a terminator is a little trickier because of the way the code is structured. I'll post my attempt in a minute; see patch 2/2 for more discussion. -Peff -- 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