From: Eric Raymond Date: Fri, 09 Apr 2010 19:50:29 GMT Subject: Re: More git status --porcelain lossage Message-ID: <20100409195029.GA15810@thyrsus.com> In-Reply-To: Jakub Narebski : > > 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. -- Eric S. Raymond