[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: editing a VC diff to modify the current version
From: |
Prabath Liyanage |
Subject: |
Re: editing a VC diff to modify the current version |
Date: |
Wed, 23 Feb 2022 23:29:26 -0500 |
emacsq via Users list for the GNU Emacs text editor
<help-gnu-emacs@gnu.org> writes:
> When I tried vscode I found an interesting feature:
>
> When I modify a file under VC then I always make a diff before checkin to see
> everything is right. Sometimes the changes have a typo or a simple
> modification occurs to me which could be done right in the diff. With vscode
> you can actually edit the diff and the changes are reflected back to the
> current version, so you don't have to go back to the file, do the
> modifications, make a diff again to see everything is right, etc.
>
> Emacs' manual mentions this about editing diffs:
>
> You can edit a Diff mode buffer like any other buffer. (If it is read-only,
> you need to make it writable first; see[Misc
> Buffer](https://www.gnu.org/software/emacs/manual/html_node/emacs/Misc-Buffer.html).)
> Whenever you edit a hunk, Diff mode attempts to automatically correct the
> line numbers in the hunk headers, to ensure that the patch remains correct,
> and could still be applied bypatch. To disable automatic line number
> correction, change the variablediff-update-on-the-flytonil.
>
> So it seems like emacs supports the other direction, treating the diff as a
> patch file which can be applied to the original to get the current version.
>
> These days comparing the current file to the last version under VC seems more
> usual, people more often make diffs before commit to see if their current
> changes are right, than doing it to make sure the patch file they create is
> correct.
>
> Can emacs support the workflow described above? That is applying edits in the
> diff buffer automatically to the file on disk. If not then it could be a
> useful improvement.
Maybe I am off the mark here, does vc-ediff/vc-diff or magit-ediff
(assuming you're using git) meet your requirements?