NHacker Next
  • new
  • past
  • show
  • ask
  • show
  • jobs
  • submit
Show HN: difi – A Git diff TUI with Neovim integration (written in Go) (github.com)
nesk_ 1 hours ago [-]
One recommendation to help this tool gain traction: use a black and white terminal for your terminal preview (GIF).

1. It will ease reading. It's currently terrible, you might be used to it but we aren't.

2. It will sharpen the text and make it easier to read since there's less to encode into the GIF format.

Additional recommendations: remove the useless part on the right—I use Arch BTW vibe—and make the font bigger.

junkblocker 59 minutes ago [-]
"What is that, a gif for Ants?"

It's really hard to see what is going on in that small blurry demo gif. So please make it bigger in addition to parent's suggestions.

oug-t 48 minutes ago [-]
I am so sorry for that gif, just updated it!
oug-t 60 minutes ago [-]
Great advice!

I will update it now.

freedomben 57 minutes ago [-]
Looks like a neat tool, and one I really need! I actually started building my own because I couldn't find anything satisfying. My build is currently in the very early stages and I'd love to abandon it :-) I'm definitely going to try difi out.

Also kudos for putting up a screenshot. I've looked through a lot of projects claiming to do similar to this, but there are so many different interpretations that can make it not a good fit for me, and when there aren't any screenshots the barrier of seeing it in action is often too high to where I only try one or two before I give up and stop wasting time. Having a screenshot made it so I could check it out quickly.

The screenshot is a little rough, so a few tips for next time:

1. Shrink your terminal window down a bit as a huge view is harder to follow

2. Keep the screenshots at full resolution so they are easier to read. The reduced resolution and the original screen being huge makes the text pretty difficult to read, even zoomed in to 200%

3. Use something like screenkey (or throw some subtitle text up or something) so the viewer knows what keys you are pressing and/or what you're trying do. It's pretty hard to follow along without those cues.

Great work, and thanks for sharing!

oug-t 49 minutes ago [-]
Thank you for those great advice!

I will definitely refine my screenshot demo!

vhantz 26 minutes ago [-]
In the readme there are only commands explicitly running the tool. Can it be set as the diff tool for git? If not, you should look into that. It will help adoption. And if yes, you should make it clear in the docs.
oug-t 18 minutes ago [-]
Great advice, I will look into it!
oug-t 15 minutes ago [-]
I add it inside a new section `## Git Integration`, thank you!
oug-t 42 minutes ago [-]
Curious to hear thoughts on editor support, do you guys feel specific integrations (Emacs/Vim) are necessary for tool like this, or the TUI work flow is enough?

Now it mainly supports `nvim`.

jlarocco 44 seconds ago [-]
Sorry to be a wet blanket, but Magit for Emacs already has a convenient UI for reviewing diffs (as well as viewing status, logs, rebasing, etc.), so I don't know if I personally would use this tool from Emacs.

But it wouldn't hurt to have an option to make "e" to open files in Emacs or the user's choice of editor.

oug-t 2 hours ago [-]
Personally speaking the git diff command is great for output, but can be improved for reviewing.

With difi the TUI made for git diff it allows to me speed up the review process and make it more enjoyable.

For the nvim integration, there already exists diffview and code diff, but I still favors the github website's solution of highlighting + and - inside one file rather then side by side.

difi: https://github.com/oug-t/difi difi.nvim: https://github.com/oug-t/difi.nvim

yearolinuxdsktp 2 hours ago [-]
Reminds me of `tig`, which is a TUI with a continuous diff (not side by side) viewer… you can revert chunks inline. Has tree view, diff view and blame view.
oug-t 54 minutes ago [-]
Yes tig is awesome!

I am also trying to add integration for this TUI with nvim `diffview` and `codediff` support.

WorldMaker 25 minutes ago [-]
git itself also has the lesser known `git add --patch` (or `-p`), the interactive staging tool (not to be confused with `git add --interactive` or `-i`, which does add more interactive tools but has a much more complex TUI that doesn't start from diffs).
Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact
Rendered at 16:17:33 GMT+0000 (Coordinated Universal Time) with Vercel.