threads / discuss / 36450

Project idea: github-like diff view

Subject: Project idea: github-like diff view

## tl;dr

5 messages between Apr 20, 2014 and Apr 22, 2014.

replies: 4people: 3as markdown or json

Duy Nguyen· Apr 20, 2014, 09:58 UTC · lore

When you view a commit from github, it shows extra info besides standard unified diff format:

- the column number of each line (useful for jumping directly to that
line without manual counting from @@ line)
- --color-words within unified diff format, using background color to
show what part of the line has changed. This is only enabled for
1-line changes.

These can be implemented and seem useful, especially the --color-words item. Once you get familiar with diff.c I suppose you could implement both in a week (the first probably takes just a day).

-- 
Duy
Jeff King· Apr 20, 2014, 14:46 UTC · re: Duy Nguyen · lore

Re: Project idea: github-like diff view

On Sun, Apr 20, 2014 at 04:58:28PM +0700, Duy Nguyen wrote:
> - --color-words within unified diff format, using background color to
> show what part of the line has changed. This is only enabled for
> 1-line changes.
See contrib/diff-highlight.
-Peff
Duy Nguyen· Apr 22, 2014, 09:59 UTC · re: Jeff King · lore

Re: Project idea: github-like diff view

On Sun, Apr 20, 2014 at 9:46 PM, Jeff King <peff@peff.net> wrote:
Show 7 quoted lines
> On Sun, Apr 20, 2014 at 04:58:28PM +0700, Duy Nguyen wrote:
>
>> - --color-words within unified diff format, using background color to
>> show what part of the line has changed. This is only enabled for
>> 1-line changes.
>
> See contrib/diff-highlight.

Thanks. I'd rather have it built in core git still. I'll try to see if I can rewrite it in C. Else, any objection to promote it to a core helper and setup pager automatically? We can have a config key to turn it off, but if git diff is colored, then it could be on by default.

-- 
Duy
Jeff King· Apr 22, 2014, 15:59 UTC · re: Duy Nguyen · lore

Re: Project idea: github-like diff view

On Tue, Apr 22, 2014 at 04:59:17PM +0700, Duy Nguyen wrote:
Show 13 quoted lines
> On Sun, Apr 20, 2014 at 9:46 PM, Jeff King <peff@peff.net> wrote:
> > On Sun, Apr 20, 2014 at 04:58:28PM +0700, Duy Nguyen wrote:
> >
> >> - --color-words within unified diff format, using background color to
> >> show what part of the line has changed. This is only enabled for
> >> 1-line changes.
> >
> > See contrib/diff-highlight.
> 
> Thanks. I'd rather have it built in core git still. I'll try to see if
> I can rewrite it in C. Else, any objection to promote it to a core
> helper and setup pager automatically? We can have a config key to turn
> it off, but if git diff is colored, then it could be on by default.

If you are going to write it as part of git, it would be interesting to try using a real word-diff to find the inter-line changes, instead of the "front and back match" heuristic that the script uses. I know there are some cases that would look better, like:

  -foo(buf, len);
  +foo(obj->buf, obj->len);

but I suspect some cases would also look worse. It would be interesting to experiment with, though.

-Peff
Felipe Contreras· Apr 22, 2014, 16:11 UTC · re: Duy Nguyen · lore

Re: Project idea: github-like diff view

Duy Nguyen wrote:
Show 13 quoted lines
> On Sun, Apr 20, 2014 at 9:46 PM, Jeff King <peff@peff.net> wrote:
> > On Sun, Apr 20, 2014 at 04:58:28PM +0700, Duy Nguyen wrote:
> >
> >> - --color-words within unified diff format, using background color to
> >> show what part of the line has changed. This is only enabled for
> >> 1-line changes.
> >
> > See contrib/diff-highlight.
> 
> Thanks. I'd rather have it built in core git still. I'll try to see if
> I can rewrite it in C. Else, any objection to promote it to a core
> helper and setup pager automatically? We can have a config key to turn
> it off, but if git diff is colored, then it could be on by default.

Having so many tools that should be rewritten to C, I don't see why anybody should spent time rewriting scripts that are not part of the core and for the most part do their job already.

-- 
Felipe Contreras

← back to recent threads