|
From: | Dmitry Gutov |
Subject: | bug#73387: 30.0.90; C-x v v in diff-mode doesn't work after C-c C-n |
Date: | Tue, 24 Sep 2024 20:36:32 +0300 |
User-agent: | Mozilla Thunderbird |
On 24/09/2024 18:54, Sean Whitton wrote:
On Tue 24 Sep 2024 at 09:32am +03, Juri Linkov wrote:But to really commit the narrowed diff I think you'll need to do something about this line in vc-next-action ((eq model 'patch) (vc-checkin files backend nil nil nil (buffer-string))) ...to specify altered buffer contents as the diff to use.What is altered buffer contents? Maybe widening is needed here as well?Yeah, could you say more, please, Dmitry? What we basically want is a non-contiguous region, including the hunk and the relevant file header. Are you thinking something like two (BEG . END) pairs specifying that region?
That's the question - what to do there (if be can), instead of passing the whole buffer string.
Maybe it should call again some new function inside diff-mode package which would return an altered patch based on the current restrictions (but with file headers added).
Simply calling 'widen' could counteract what seems like your intent.OTOH, maybe what you want to do here could be reached some other way - e.g. instead of 'C-x n n' we would have a command which edits the diff buffer to leave in only the hunks intersecting the current region. When the subsequent (buffer-string) would do the right thing.
The latter might also be a better fit for the overall workflow we were thinking about (create a diff -> alter it as necessary -> commit).
[Prev in Thread] | Current Thread | [Next in Thread] |