From: Nathan Collins Date: Thu, 08 May 2014 04:53:57 GMT Subject: Re: [BUG?] Patches created with 'diff.noprefix=true' don't 'git apply'. Message-ID: In-Reply-To: On Wed, May 7, 2014 at 9:38 PM, Nathan Collins wrote: > On Wed, May 7, 2014 at 4:39 PM, Nathan Collins wrote: >> On Wed, May 7, 2014 at 11:42 AM, Junio C Hamano wrote: >>> Nathan Collins writes: >> >>>> For (2), the solution may be to add a separate >>>> 'diff.add-clickable-paths' option (probably there is a better name? >>>> 'diff.add-copyable-paths'? ...),... >>>> ... >>>> Concretely, if 'diff.add-clickable-paths' is set, then instead of e.g. >>>> >>>> diff --git a/src/Data/Function/Decorator/Memoizer/Unsafe.hs >>>> b/src/Data/Function/Decorator/Memoizer >>>> index 3ef17da..a0586d3 100644 >>>> --- a/src/Data/Function/Decorator/Memoizer/Unsafe.hs >>>> +++ b/src/Data/Function/Decorator/Memoizer/Unsafe.hs >>> >>> If you do something along that line, perhaps >>> >>> Index: src/Data/Function/Decorator/Memoizer/Unsafe.hs >>> diff --git a/src/Data/Function/Decorator/Memoizer/Unsafe.hs ... >>> index 3ef17da..a0586d3 100644 >>> --- a/src/Data/Function/Decorator/Memoizer/Unsafe.hs >>> +++ b/src/Data/Function/Decorator/Memoizer/Unsafe.hs >>> >>> to imitate what "cvs diff" does may be more familar to people. >>> >>> What would you propose to make clickable in a renaming diff, though? >> >> Your 'Index' header looks good, and I would expect a renaming diff to >> have something like >> >> Index: foo -> bar >> >> as in 'git status', but I just realized that a "clickable paths" >> option already exists in some sense! There is a '--patch-with-raw' >> option (which is "short" for '--patch' and '--raw', hahaha) which >> inserts clickable file names in the patch, above each diff. > > Or not: I stupidly only tested this with a single file modified: it > turns out that all the clickable file names appear at the top of the > patch, not as one file name above each corresponding diff as I > claimed. The following may be a non-option, since presumably many tools depend on the current Git patch format. The paths in the "extended header lines" in Git patches are clickable by default, and respect the '--relative' option. So, adding a path to the extended header lines that don't already have one would solve the "clickable paths" problem. E.g. index .. becomes index .. The 'man git-diff' description of extended header lines in the "Generating Patches with -p" section: 2. It is followed by one or more extended header lines: old mode new mode deleted file mode new file mode copy from copy to rename from rename to similarity index dissimilarity index index .. File modes are printed as 6-digit octal numbers including the file type and file permission bits. Path names in extended headers do not include the a/ and b/ prefixes. Cheers, -nathan