Make "terminator behavior" the default with --pretty=format: ?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Is there a reason, other than backward compatibility, for
"--prety=format:" to have separator rather than terminator semantics?

I got bitten by this badly today, because I was processing the output
of git log --pretty=format:... through sh, like this:

    git log --pretty=format:"%H %an" $old..$new | (
        while read commit author; do
           ... some processing ...
        done
    )

It turns out that the sh (which includes bash, dash, and zsh) "read"
built-in doesn't process lines that don't end in newline. The effect
was that the last line of output was silently ignored. It took some
hours to track down.

sh is not the only tool with this problem; many traditional Unix tools
don't process lines that don't end with newlines, and some require
special exceptions and kludges (think diff). Because of this I believe
"format:" should be changed to do terminator semantics, and tformat
deprecated. If this is not feasible, then the documentation should
recommend "tformat:", and only mention "format" as an afterthought,
rather than the other way around.
--
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


[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]