Short story of how I got to this bug report: For a while now, I've been wanting to contribute to Emacs by doing something more than reporting bugs and try to provide trivial fixes for the bugs I found. So I looked into emacs-devel, to read about recomendations for beginning to contribute. Based on some of the mails I found [1], it looks like working on some wishlist items or minor bugs would be good. So I said to myself: OK, let's see what is the oldest one still open. And here I am. Now I'll make a summary of what I've understood from the bug report: The wish is to have a command that would act like 'revert-buffer' (e.g., modifying the buffer rightaway), but that tries to do a better job preserving markers. Also, it is desirable that undo info is preserved. It is known that 'revert-buffer' preserves undo info nowadays, but what I understand is that it would be good to keep undo info of parts of the total reverted change, so the undo of the reverted action can be made by steps, and not as a single undo operation. I think that the alternatives proposed after the report [2] do not fulfill the wish because they do not modify the buffer immediately. I'm not sure how they act in regards to preserving markers and the undo info, though. AFAIK, the functionality wanted is still not present, so I'd guess it's still relevant to work in this matter. So for a week or so now, I've been working in a command that does what I think it is wanted. The command is called 'revert-buffer-by-hunks' (I've added 'rbbh' as a prefix for sending the file for you to see/test), because it calls 'diff' and then with the output patches the buffer. At first, I wrote a command that used diff-mode under the hood, but I've been having troubles with preserving markers. So I took a step back, and wrote a new function that patches the buffer with the contents of the file visited on disk. With that done, I think it is time for me to show what I've written so far, in order to: 1) Know if the functionality is present (I don't think so, but I believe this is the first thing to know in order to advance). 2) There's still interest in having this command. 3) Know if working on this subject would be appreciated, or should I move on to other things. 4) Receieve feedback, suggestions, fixes on things I'm sure I'm missing. 5) Discuss some of the questions that have arisen while I've been working on this. I'll wait for answers regarding to 1-4. With regards to 5, I would like to read opinions about: a) What variables would you think should be customizable? b) After reverting by hunks, I think it would be desirable to navigate through the hunks reverted and toggle their state (i.e., go back and forth to the contents before the revert operation and the contens on disk). That is because I think it would be kinda annoying to want to undo some of the reverted hunks, and to do that having to undo sequentially from the Nth hunk reverted to the desired one. I attach a first draft of my work. I'm hoping to hear suggestions and corrections to improve it. Best regards, Mauro. [1] http://lists.gnu.org/archive/html/emacs-devel/2018-07/msg00451.html http://lists.gnu.org/archive/html/emacs-devel/2017-08/msg00675.html http://lists.gnu.org/archive/html/emacs-devel/2013-10/msg00805.html [2] Command diff-hl-revert-hunk, from diff-hl package Command diff-buffer-with-file Command ediff-current-file