On Wed, May 7, 2014 at 9:38 PM, Nathan Collins <[email protected]> wrote:
> On Wed, May 7, 2014 at 4:39 PM, Nathan Collins <[email protected]>
> wrote:
>> On Wed, May 7, 2014 at 11:42 AM, Junio C Hamano <[email protected]> wrote:
>>> Nathan Collins <[email protected]> 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 <hash>..<hash> <mode>
becomes
index <hash>..<hash> <mode> <path>
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 <mode>
new mode <mode>
deleted file mode <mode>
new file mode <mode>
copy from <path>
copy to <path>
rename from <path>
rename to <path>
similarity index <number>
dissimilarity index <number>
index <hash>..<hash> <mode>
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
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html