Skip to content

Commit 22befce

Browse files
committed
Issue a nice error when eldev-use-vc-repository is given mismatching package name and the repository.
1 parent 0d001f2 commit 22befce

File tree

2 files changed

+18
-0
lines changed

2 files changed

+18
-0
lines changed

eldev-vc.el

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -249,6 +249,10 @@ Will be nil if no such repository was registered or
249249
(when commit
250250
(setf tag+version (eldev--vc-pick-release-tag release-tag-regexp))))
251251
(let ((package (eldev-package-descriptor dir)))
252+
(unless (eq (package-desc-name package) (car repository))
253+
(signal 'eldev-error `(:hint ("This package was expected due to a call to `eldev-use-vc-repository'
254+
However, the repository contains package `%s' instead" ,(package-desc-name package))
255+
"VC repository `%s' failed to provide package `%s'" ,(eldev--vc-repository-name repository) ,(car repository))))
252256
(if tag+version
253257
(setf (package-desc-version package) (cdr tag+version))
254258
(eldev-call-process (eldev-git-executable) `("--no-pager" "log" "-1" "--no-color" "--format=%cI" "--no-patch")

test/vc-repositories.el

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -301,4 +301,18 @@
301301
(should (= exit-code 0))))))
302302

303303

304+
(ert-deftest eldev-vc-repositories-wrong-package ()
305+
(eldev--test-with-temp-copy "dependency-e" 'Git
306+
(let ((dependency-e-dir eldev--test-project)
307+
(eldev--test-project "vc-dep-project-a"))
308+
(eldev--test-delete-cache)
309+
;; Make sure that such misconfiguration, i.e. when the repository doesn't provide the "promised"
310+
;; package, are caught early and result in an understandable failure.
311+
(eldev--test-run nil ("--setup" `(eldev-use-vc-repository 'dependency-a :git ,dependency-e-dir)
312+
"prepare")
313+
(should (string-match-p (rx-to-string `(seq ,dependency-e-dir (0+ any) "failed to provide" (0+ any) "dependency-a")) stderr))
314+
(should (string-match-p (rx "repository contains package" (0+ any) "dependency-e") stderr))
315+
(should (= exit-code 1))))))
316+
317+
304318
(provide 'test/vc-repositories)

0 commit comments

Comments
 (0)