Ask HN: Why not edit all code in 'diff' view?

26 points by smrtinsert ↗ HN
70% of coding is maintenance. Often you are replacing logic that might still be relevant, but requires a tweak. Why not show a live diff as you work? This keeps you in context without forcing you to comment out or write 'parallel' code.

10 comments

[ 15.9 ms ] story [ 850 ms ] thread
Looks like a nice idea. I'd like an option to toggle between normal view and diff view. Perhaps you can write a plugin for your favorite text editor.
I constantly reference the Tower (https://www.git-tower.com/mac/) current diff view while coding a new feature or hotfix. It would be awesome to have that level of integration in Sublime. GitGutter is a great add-on package but way more limited in scope.
It's easy enough to diff and un-diff and I'd rather have the full window while editing, especially on a laptop.
In addition to the other tools people have mentioned, Vim supports this with tpope's vim-fugitive (:Gdiff)

To answer your question, "... why not?":

* oftentimes when I'm writing code I'd rather split the screen with another relevant file

* sometimes the diff is irrelevant (I started from scratch, or primarily added code instead of modifying or removing it)

* other times, it's enough to know only that a line has changed. I've configured Vim (with vim-git-gutter) to show symbols next to added and removed lines

If you tdd, you will write the test for the new code while the old code is still available, and you will use the test as a guide rather than the old code.

Even if you don't tdd, I would say that typically if you understand the code well enough to make a change, you should be able to write a replacement without referring to the old code. The diff should fit in your mind, so to speak. There are some exceptions, like when you're modifying a regex or some dense, opaque shell command, but in the course of modifying typical code I can't see a live diff being that useful to me

Anyone know of version of this for emacs?