Re: [RFC] Interactive difftool
On Fri, Mar 27, 2009 at 10:51 PM, David Aguilar <davvid@gmail.com> wrote:
Show 38 quoted lines
> On 0, Ping Yin <pkufranky@gmail.com> wrote:
>> Before git-difftool goes to master, i want to propose a new feature to
>> add to or replace the current behaviour of difftool. With current
>> difftool, we can only see the diff one by one. However, sometimes what
>> we want is to see the diff of selected files, or in a different order,
>> just like what we can do in the gui. So here is what i propose
>>
>> $ git difftool --interactive [options]
>> [1] diff.c | 10 +++++++++-
>> [2] t/t4020-diff-external.sh | 8 ++++++++
>> Choose the file you want to see the diff of: 2
>>
>> When the user types 2 and then <enter>, the external diff program is called
>>
>> Further more, instead of just type a number, a letter can be prepended
>> to the number to represent different ways of diff. For example
>>
>> t2 (tool 2): see the diff for file 2 with the configured diff tool
>> p2 (patch 2): see the diff for file 2 in the patch format
>>
>> What do you think?
>>
>> Ping Yin
>
> That would be pretty cool. I don't know about the
> merge-to-master timing and whether we'd want to include new
> features before the move.
>
> I guess most of the work would have to be done in
> git-difftool-helper.sh. I had a co-worker that asked for this
> exact feature just the other day (and ditto for mergetool).
>
> Patches are welcome if you have an idea for how it could work.
> Right now we get called indirectly by git-diff so I
> don't know if there's an easy way to hook into it like that.
> It might be a matter of changing git-difftool.perl so that it
> does more of the dispatching itself.
>
We can just change git-difftool.perl
The easiest way is first parsing the output of git diff --stat, adding the number at the beginning, for example [1] diff.c | 10 +++++++++- [2] t/t4020-diff-external.sh | 8 ++++++++
When the user types a number, git-difftool-helper is launched to show the diff for the corresponding file.