[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] scratch/add-vdiff bcacd3f 249/258: vdiff: Add option vdiff-use-an
From: |
Justin Burkett |
Subject: |
[elpa] scratch/add-vdiff bcacd3f 249/258: vdiff: Add option vdiff-use-ancestor-as-merge-buffer |
Date: |
Wed, 17 May 2017 08:14:02 -0400 (EDT) |
branch: scratch/add-vdiff
commit bcacd3f9bbf669c91cf83a5fbc85899b6700287a
Author: Justin Burkett <address@hidden>
Commit: Justin Burkett <address@hidden>
vdiff: Add option vdiff-use-ancestor-as-merge-buffer
This gives the option of showing the ancestor version of the file as the
merge
buffer.
---
vdiff.el | 39 ++++++++++++++++++++++++++++-----------
1 file changed, 28 insertions(+), 11 deletions(-)
diff --git a/vdiff.el b/vdiff.el
index ef4cbde..f98de64 100644
--- a/vdiff.el
+++ b/vdiff.el
@@ -140,6 +140,15 @@ indicate the subtraction location in the fringe."
:group 'vdiff
:type 'integer)
+(defcustom vdiff-use-ancestor-as-merge-buffer nil
+ "When in a merge conflict file and text from the ancestor file
+is included, `vdiff-merge-conflict' will use the ancestor file as
+the merge buffer (or target buffer) that will be saved when the
+merge is finished. The default is to show the original file with
+conflicts as the merge buffer."
+ :group 'vdiff
+ :type 'boolean)
+
(defface vdiff-addition-face
'((t :inherit diff-added))
"Face for additions"
@@ -1738,9 +1747,7 @@ function for ON-QUIT to do something useful with the
result."
;;;###autoload
(defun vdiff-merge-conflict (file &optional on-quit restore-windows-on-quit)
- "Start vdiff session using merge conflicts marked in FILE.
-
-The base or ancestor file is currently ignored."
+ "Start vdiff session using merge conflicts marked in FILE."
(interactive (list buffer-file-name))
(with-current-buffer (find-file-noselect file)
(require 'smerge-mode)
@@ -1755,10 +1762,11 @@ The base or ancestor file is currently ignored."
(concat "*" filename " "
(smerge--get-marker smerge-end-re "OTHER")
"*")))
- (base (generate-new-buffer
+ (ancestor (generate-new-buffer
(concat "*" filename " "
- (smerge--get-marker smerge-end-re "BASE")
- "*"))))
+ (smerge--get-marker smerge-end-re "ANCESTOR")
+ "*")))
+ ancestor-used merge-buffer)
(with-current-buffer mine
(buffer-disable-undo)
(insert-buffer-substring smerge-buffer)
@@ -1769,12 +1777,13 @@ The base or ancestor file is currently ignored."
(set-buffer-modified-p nil)
(funcall mode))
- (with-current-buffer base
+ (with-current-buffer ancestor
(buffer-disable-undo)
(insert-buffer-substring smerge-buffer)
(goto-char (point-min))
(while (smerge-find-conflict)
(when (match-beginning 2)
+ (setq ancestor-used t)
(smerge-keep-n 2)))
(buffer-enable-undo)
(set-buffer-modified-p nil)
@@ -1790,15 +1799,23 @@ The base or ancestor file is currently ignored."
(set-buffer-modified-p nil)
(funcall mode))
+ (setq merge-buffer
+ (if (and ancestor-used vdiff-use-ancestor-as-merge-buffer)
+ ancestor
+ smerge-buffer))
+
(vdiff-buffers3
- mine other smerge-buffer
- `(lambda (mine other smerge-buffer)
- (with-current-buffer smerge-buffer
+ mine other merge-buffer
+ `(lambda (mine other merge-buffer)
+ (with-current-buffer ,smerge-buffer
(when (yes-or-no-p (format "Conflict resolution finished; save %s?"
buffer-file-name))
+ (when ,(and ancestor-used vdiff-use-ancestor-as-merge-buffer)
+ (erase-buffer)
+ (insert-buffer-substring merge-buffer))
(save-buffer)))
(when (buffer-live-p mine) (kill-buffer mine))
- (when (buffer-live-p ,base) (kill-buffer ,base))
+ (when (buffer-live-p ,ancestor) (kill-buffer ,ancestor))
(when (buffer-live-p other) (kill-buffer other)))
t))))
- [elpa] scratch/add-vdiff 3037be6 222/258: vdiff-magit: Cleanup references in dwim, (continued)
- [elpa] scratch/add-vdiff 3037be6 222/258: vdiff-magit: Cleanup references in dwim, Justin Burkett, 2017/05/17
- [elpa] scratch/add-vdiff 615e7bd 228/258: vdiff-magit: Fix killing of buffers in stage, Justin Burkett, 2017/05/17
- [elpa] scratch/add-vdiff a040a4b 246/258: vdiff: Add vdiff-merge-conflict, Justin Burkett, 2017/05/17
- [elpa] scratch/add-vdiff 7fbb20e 205/258: Nil temp-session after using it, Justin Burkett, 2017/05/17
- [elpa] scratch/add-vdiff 048d544 198/258: Pass session explicitly from refresh sentinel, Justin Burkett, 2017/05/17
- [elpa] scratch/add-vdiff ed25084 224/258: vdiff-magit: Fix some strings, Justin Burkett, 2017/05/17
- [elpa] scratch/add-vdiff 432534d 230/258: vdiff-magit: Don't use vdiff-magit-resolve yet, Justin Burkett, 2017/05/17
- [elpa] scratch/add-vdiff 1d79425 235/258: vdiff-magit: Cleanup header, Justin Burkett, 2017/05/17
- [elpa] scratch/add-vdiff c2c991d 209/258: Add initial vdiff-magit work, Justin Burkett, 2017/05/17
- [elpa] scratch/add-vdiff fb3097c 247/258: vdiff: Check if window exists before forcing vscroll, Justin Burkett, 2017/05/17
- [elpa] scratch/add-vdiff bcacd3f 249/258: vdiff: Add option vdiff-use-ancestor-as-merge-buffer,
Justin Burkett <=
- [elpa] scratch/add-vdiff 52ea351 237/258: vdiff-magit: Add option to prefer ediff for merges, Justin Burkett, 2017/05/17
- [elpa] scratch/add-vdiff f11c7c2 257/258: vdiff: Fix vdiff-buffers window layout, Justin Burkett, 2017/05/17