Re: More git status --porcelain lossage
From: Eric Raymond <hidden>
Date: 2016-06-15 22:48:35
Jakub Narebski [off-list ref]:
quoted
Conclusion: As it is presently, git status --porcelain format is irretrievably botched. You need a field separator that's musch less likely to land in a filename, like '|' - and to warn in the documentation that careful front ends must check for and ignore '\|'.Or follow what other porcelain does, like git-diff-tree raw output format, where all fields except final filename are space separated, filename is separated by tab character (or NUL when '-z' options is used). If there are two names (in the case of copy or renames), they are separated by a tab (or NUL). Record ends with LF (or NUL). When '-z' option is not used, TAB, LF, " and backslash characters are represented by '\t', '\n', '\"' and \\, and the filename is enclosed in '"' doublequotes.
That would be a bit trickier to parse, but acceptable. -- <a href="http://www.catb.org/~esr/">Eric S. Raymond</a>