Hi, On Fri, Jan 25, 2019 at 6:45 AM Derrick Stolee <stolee@xxxxxxxxx> wrote: > > On 1/24/2019 11:46 AM, Elijah Newren wrote: > > As an alternative, I considered perhaps trying to sell it as a bugfix > > (how often do people use -M, -c, and --raw together and have renames > > in merge commits -- can I just change the format to include the old > > names), but was worried that since diff-tree is plumbing and that the > > format was documented to not include original filename(s), that I'd be > > breaking backward compatibility in an important way for someone and > > thus opted for a new flag to get the behavior I needed. > > This is wise. Changing the format is likely to break at least one GUI > client or tool, especially because many depend on the installed version > of Git instead of shipping with one "blessed" client. > > In addition, there may be whitespace in the filenames. It appears the > diff format separates the filenames with tab characters. Is it > possible to have tab character in a file name? That would make the output > ambiguous, but is no worse than our current output in a non-combined > diff. No, it's actually unambiguous with or without the -z option. Without -z, pathnames with "unusual" characters (whose definition depends on core.quotePath) will cause the pathname to be enclosed in double-quotes with the unusual characters handed with backslashes and control characters. With -z, it separates pathnames with a nul character instead. > I'll repeat Brian's request for tests. I trust the compiler and the > test suite more than I trust my ability to read code. Yep, I'll add a pair and use filenames with multiple tabs.