branch: scratch/add-vdiff
commit ff1fbc409f816574a230bfdaa17ea73f65196654
Author: Justin Burkett <[email protected]>
Commit: Justin Burkett <[email protected]>
vdiff: Generate ancestor buffer in merge-conflict
It's not shown or used at the moment, but it's there now.
---
vdiff.el | 30 +++++++++++++++++++++++-------
1 file changed, 23 insertions(+), 7 deletions(-)
diff --git a/vdiff.el b/vdiff.el
index bc9234a..ef4cbde 100644
--- a/vdiff.el
+++ b/vdiff.el
@@ -1754,6 +1754,10 @@ The base or ancestor file is currently ignored."
(other (generate-new-buffer
(concat "*" filename " "
(smerge--get-marker smerge-end-re "OTHER")
+ "*")))
+ (base (generate-new-buffer
+ (concat "*" filename " "
+ (smerge--get-marker smerge-end-re "BASE")
"*"))))
(with-current-buffer mine
(buffer-disable-undo)
@@ -1765,6 +1769,17 @@ The base or ancestor file is currently ignored."
(set-buffer-modified-p nil)
(funcall mode))
+ (with-current-buffer base
+ (buffer-disable-undo)
+ (insert-buffer-substring smerge-buffer)
+ (goto-char (point-min))
+ (while (smerge-find-conflict)
+ (when (match-beginning 2)
+ (smerge-keep-n 2)))
+ (buffer-enable-undo)
+ (set-buffer-modified-p nil)
+ (funcall mode))
+
(with-current-buffer other
(buffer-disable-undo)
(insert-buffer-substring smerge-buffer)
@@ -1777,13 +1792,14 @@ The base or ancestor file is currently ignored."
(vdiff-buffers3
mine other smerge-buffer
- (lambda (mine other smerge-buffer)
- (with-current-buffer smerge-buffer
- (when (yes-or-no-p (format "Conflict resolution finished; save %s?"
- buffer-file-name))
- (save-buffer)))
- (when (buffer-live-p mine) (kill-buffer mine))
- (when (buffer-live-p other) (kill-buffer other)))
+ `(lambda (mine other smerge-buffer)
+ (with-current-buffer smerge-buffer
+ (when (yes-or-no-p (format "Conflict resolution finished; save %s?"
+ buffer-file-name))
+ (save-buffer)))
+ (when (buffer-live-p mine) (kill-buffer mine))
+ (when (buffer-live-p ,base) (kill-buffer ,base))
+ (when (buffer-live-p other) (kill-buffer other)))
t))))
;;;###autoload