Fix unwanted revert file prompt after repeated vc-ediff (bug#11605)
* lisp/vc/ediff-vers.el (vc-find-revision-no-save): Declare. (ediff-vc-internal, ediff-vc-merge-internal): Bind vc-find-revision-no-save instead of calling ediff-delete-version-file (bug#11605). (ediff-delete-version-file): Delete.
This commit is contained in:
parent
035077febe
commit
a38ed1618d
1 changed files with 9 additions and 26 deletions
|
@ -58,29 +58,26 @@ comparison or merge operations are being performed."
|
|||
))
|
||||
|
||||
|
||||
(defvar vc-find-revision-no-save)
|
||||
|
||||
(defun ediff-vc-internal (rev1 rev2 &optional startup-hooks)
|
||||
;; Run Ediff on versions of the current buffer.
|
||||
;; If REV1 is "", use the latest version of the current buffer's file.
|
||||
;; If REV2 is "" then compare current buffer with REV1.
|
||||
;; If the current buffer is named `F', the version is named `F.~REV~'.
|
||||
;; If `F.~REV~' already exists, it is used instead of being re-created.
|
||||
(let (file1 file2 rev1buf rev2buf)
|
||||
(let ((vc-find-revision-no-save (not ediff-keep-tmp-versions))
|
||||
rev1buf rev2buf)
|
||||
(if (string= rev1 "")
|
||||
(setq rev1 (ediff-vc-latest-version (buffer-file-name))))
|
||||
(save-window-excursion
|
||||
(save-excursion
|
||||
(vc-revision-other-window rev1)
|
||||
(setq rev1buf (current-buffer)
|
||||
file1 (buffer-file-name)))
|
||||
(setq rev1buf (current-buffer)))
|
||||
(save-excursion
|
||||
(or (string= rev2 "") ; use current buffer
|
||||
(vc-revision-other-window rev2))
|
||||
(setq rev2buf (current-buffer)
|
||||
file2 (buffer-file-name)))
|
||||
(push (lambda ()
|
||||
(ediff-delete-version-file file1)
|
||||
(or (string= rev2 "") (ediff-delete-version-file file2)))
|
||||
startup-hooks))
|
||||
(setq rev2buf (current-buffer))))
|
||||
(ediff-buffers
|
||||
rev1buf rev2buf
|
||||
startup-hooks
|
||||
|
@ -143,7 +140,8 @@ With prefix argument, prompts for a revision name."
|
|||
(defun ediff-vc-merge-internal (rev1 rev2 ancestor-rev
|
||||
&optional startup-hooks merge-buffer-file)
|
||||
;; If ANCESTOR-REV non-nil, merge with ancestor
|
||||
(let (buf1 buf2 ancestor-buf)
|
||||
(let ((vc-find-revision-no-save t)
|
||||
buf1 buf2 ancestor-buf)
|
||||
(save-window-excursion
|
||||
(save-excursion
|
||||
(vc-revision-other-window rev1)
|
||||
|
@ -158,17 +156,7 @@ With prefix argument, prompts for a revision name."
|
|||
(setq ancestor-rev (vc-working-revision
|
||||
buffer-file-name)))
|
||||
(vc-revision-other-window ancestor-rev)
|
||||
(setq ancestor-buf (current-buffer))))
|
||||
(push (let ((f1 (buffer-file-name buf1))
|
||||
(f2 (unless (string= rev2 "") (buffer-file-name buf2)))
|
||||
(fa (unless (or (string= ancestor-rev "")
|
||||
(not ancestor-rev))
|
||||
(buffer-file-name ancestor-buf))))
|
||||
(lambda ()
|
||||
(ediff-delete-version-file f1)
|
||||
(if f2 (ediff-delete-version-file f2))
|
||||
(if fa (ediff-delete-version-file fa))))
|
||||
startup-hooks))
|
||||
(setq ancestor-buf (current-buffer)))))
|
||||
(if ancestor-rev
|
||||
(ediff-merge-buffers-with-ancestor
|
||||
buf1 buf2 ancestor-buf
|
||||
|
@ -201,10 +189,5 @@ With prefix argument, prompts for a revision name."
|
|||
buf1 buf2 startup-hooks 'ediff-merge-revisions merge-buffer-file))))
|
||||
|
||||
|
||||
;; delete version file on exit unless ediff-keep-tmp-versions is true
|
||||
(defun ediff-delete-version-file (file)
|
||||
(or ediff-keep-tmp-versions (delete-file file)))
|
||||
|
||||
|
||||
(provide 'ediff-vers)
|
||||
;;; ediff-vers.el ends here
|
||||
|
|
Loading…
Add table
Reference in a new issue