mirror of
https://git.savannah.gnu.org/git/emacs.git
synced 2026-09-10 15:56:35 -04:00
Fix vc-hg-diff arguments to diff vs empty tree
* lisp/vc/vc-hg.el (vc-hg-diff): Fix behavior according to backend function specification (bug#81527). * test/lisp/vc/vc-hg-tests.el (vc-hg-diff-revision-arguments): New test.
This commit is contained in:
parent
d828a19fdc
commit
afda8c2779
|
|
@ -567,7 +567,7 @@ This requires hg 4.4 or later, for the \"-L\" option of \"hg log\"."
|
|||
(when (and (not newvers) (member oldvers (list working ".")))
|
||||
(setq oldvers nil))
|
||||
(when (and newvers (not oldvers))
|
||||
(setq oldvers working))
|
||||
(setq oldvers "null"))
|
||||
(apply #'vc-hg-command
|
||||
(or buffer "*vc-diff*")
|
||||
(if async 'async 1)
|
||||
|
|
|
|||
|
|
@ -88,4 +88,21 @@ R foo"
|
|||
("foo2" added #s(vc-hg-extra-fileinfo renamed-from "foo"))
|
||||
("bar2" added #s(vc-hg-extra-fileinfo renamed-from "bar")))))
|
||||
|
||||
(ert-deftest vc-hg-diff-revision-arguments ()
|
||||
"Test `vc-hg-diff' revision arguments."
|
||||
(cl-letf (((symbol-function 'vc-hg-command) #'list)
|
||||
(vc-hg-diff-switches t))
|
||||
;; REV1 REV2 both nil: diff file against working revision
|
||||
(should (equal (vc-hg-diff '("foo") nil nil)
|
||||
'("*vc-diff*" 1 ("foo") "diff")))
|
||||
;; REV1 nil and REV2 non-nil: diff REV2 against empty tree
|
||||
(should (equal (vc-hg-diff '("foo") nil "22222")
|
||||
'("*vc-diff*" 1 ("foo") "diff" "-r" "null" "-r" "22222")))
|
||||
;; REV1 non-nil and REV2 nil: diff working copy against older revision
|
||||
(should (equal (vc-hg-diff '("foo") "11111" nil)
|
||||
'("*vc-diff*" 1 ("foo") "diff" "-r" "11111")))
|
||||
;; REV1 REV2 both non-nil: diff two revisions
|
||||
(should (equal (vc-hg-diff '("foo") "11111" "22222")
|
||||
'("*vc-diff*" 1 ("foo") "diff" "-r" "11111" "-r" "22222")))))
|
||||
|
||||
;;; vc-hg-tests.el ends here
|
||||
|
|
|
|||
Loading…
Reference in a new issue