Re: RFH - git-log variant that _does_ search through diffs
From: Jeff King <hidden>
Date: 2016-06-15 22:47:00
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 0Ugh. 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