git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [RFC] Interactive difftool

From
Ping Yin <pkufranky@gmail.com>
Date
Mar 27, 2009, 15:23 UTC
Message-ID
<46dff0320903270823v5e8e9c80w506d8a85440588f5@mail.gmail.com>
In-Reply-To
<20090327145122.GA944@gmail.com>
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.

Previous: David AguilarNext: Jeff King
Message 3 of 5 in “[RFC] Interactive difftool”
  1. Ping YinMar 26, 2009
  2. David AguilarMar 27, 2009
  3. Ping YinMar 27, 2009
  4. Jeff KingMar 28, 2009
  5. Ping YinMar 28, 2009

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.