32 comments

[ 1.7 ms ] story [ 79.9 ms ] thread
I was just looking for this over the weekend, and found it this morning.

When I talk about code to collaborators in email or chat, I always try to link to the file on github rather than just giving a path. I much prefer to recieve feedback that way. Maybe i'm not good enough with my text editor, but it is just a lot faster to get to the file that way.

Been needing this badly for reviewing changes to legacy code which tends to require a much larger context for understanding of a diff.

Hope it shows up in GH enterprise soon!

AFAIK it should be in the next major release (330)!
When working locally you can do something similar with -U<n> and I've also found using --patience can sometimes generate cleaner patches.
I hoped they would fix line wrapping - which should be a relatively simply task - by now.

This is a very needed feature for projects that work a lot with text files (such as markdown) that do not automatically break on set widths (e.g. [1])

I've already contacted Github support with this request months ago, but no one's stepped up with a fix. Maybe this can get escalated somehow? Heck, I'd even submit a pull request if it was possible for github/github.

[1] - https://github.com/cryptoparty/handbook/pull/72/files

I'm not sure I understand what you are referring to. Are you saying you want the long lines to be wrapped in the diff display? If so, I really can't see how this is an issue with GitHub since this is how the unified diff output is suppose to look like. Displaying it any differently would be misleading since it is a long line.
Why not add line breaks using your text editor? That will also help your collaborators who prefer not to wrap long lines.

I have a hook in my .emacs that turns on auto-fill-mode whenever I open a .md or .rst file. I'd assume there's something analogous for vim or whichever editor you normally work with.

I see this becoming a trend now, where long lines are used to make it easier to do diffs. I'm on the fence about this since there are pros and cons.
In text, hard line breaks can be content rather than presentation, so adding them to the raw file is not always desirable. It would be fantastic if the github web viewers offered this feature.

Also, won't it mess up diffs for wrapped text? If you add a few words in the middle of a paragraph and then re-wrap the text, won't the contents of every single following line be altered and show up as a diff?

Unified and side by side diffs were never really meant for diffing documents. If you do go the route of introducing line breaks to improve readability and/or editing, you really need to use a different diffing algorithm. What I've found useful is the Google diff match and patch library.

http://code.google.com/p/google-diff-match-patch/

Its extremely easy to integrate as well. You can see how it handles a markdown diff at:

http://ny.testdrive.gitsense.com/index?#pid=23&cid=27&trail=

Side-by-side diffs would be superior.
Aren't they complimentary? You can have a side-by-side diff without the extra context this change introduces.

That said, I also want side-by-side diffs. They're necessary for more complex diffs.

Agree with the adjacent post that this is a complementary feature request and I also really want it. There is a browser plugin that can sort of get you there, but it's pretty brittle.
I'm not sure if their stance has changed and I can't seem to find the answer that was given, but it had to do with aesthetics/layout. Basically their web layout width was too restrictive for showing side by side diffs. They only really have two options:

1) Do what Bitbucket does and have the side by side diff be a pop up window. I personally find this to be jarring and unnatural.

2) Combine both elements. It's what I do for my product. To better understand this take a look at

http://ny.testdrive.gitsense.com/index?#pid=22&cid=27&trail=

and switch to the side by side view. If you hover over the line number, you'll be able to see the diff line in unified mode below. With this setup they can provide side by side without having the user to constantly scroll left to right.

Worth noting that BitBucket had this as long as I can remember.
If any githubbers are reading, it would be great to be able to filter my organization's timeline events out of my personal timeline events. It's been bugging me for years. Thanks.
Oh man yes please to this. The timeline is effectively useless right now.
> and the feature is available anywhere we render diffs

No, it's not available on gist.github.com.

Sure, they may (or may not) port it over after some time, but I just don't get why they can't use the same code in the first place. Why is GitHub reinventing the wheel in for its very own sub-site?

(Other than that, this is absolutely great!)

Since we're on the subject of Github's diff viewer, thought I'd throw in a plug for a chrome extension I wrote recently to improve it:

https://chrome.google.com/webstore/detail/github-enhancement...

Has side-by-side + word wrap + context (somewhat nicer looking than Github's, although could be biased)

Largely inspired by Phabricator's diff viewer.

Fingers crossed for "default to ignore whitespace in all diffs" to be the next feature they roll out...