aboutsummaryrefslogtreecommitdiff
path: root/gnu/packages/version-control.scm
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages/version-control.scm')
-rw-r--r--gnu/packages/version-control.scm148
1 files changed, 110 insertions, 38 deletions
diff --git a/gnu/packages/version-control.scm b/gnu/packages/version-control.scm
index ca8af00752..20db6b4b08 100644
--- a/gnu/packages/version-control.scm
+++ b/gnu/packages/version-control.scm
@@ -11,7 +11,7 @@
;;; Copyright © 2015, 2017, 2018 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2016, 2017 Leo Famulari <leo@famulari.name>
;;; Copyright © 2016, 2017, 2018 ng0 <ng0@n0.is>
-;;; Copyright © 2017, 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2017, 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2017 Vasile Dumitrascu <va511e@yahoo.com>
;;; Copyright © 2017 Clément Lassieur <clement@lassieur.org>
;;; Copyright © 2017 André <eu@euandre.org>
@@ -73,6 +73,7 @@
#:use-module (gnu packages guile)
#:use-module (gnu packages image)
#:use-module (gnu packages linux)
+ #:use-module (gnu packages mail)
#:use-module (gnu packages maths)
#:use-module (gnu packages nano)
#:use-module (gnu packages ncurses)
@@ -147,14 +148,14 @@ as well as the classic centralized workflow.")
(name "git")
;; XXX When updating Git, check if the special 'git-source' input to cgit
;; needs to be updated as well.
- (version "2.24.1")
+ (version "2.25.0")
(source (origin
(method url-fetch)
(uri (string-append "mirror://kernel.org/software/scm/git/git-"
version ".tar.xz"))
(sha256
(base32
- "0ql5z31vgl7b785gwrf00m129mg7zi9pa65n12ij3mpxx3f28gvj"))))
+ "1l58v42aazj0x9276gk8r9mwyl9pgp9w99aakz4xfhzv7wd2jq60"))))
(build-system gnu-build-system)
(native-inputs
`(("native-perl" ,perl)
@@ -167,7 +168,7 @@ as well as the classic centralized workflow.")
version ".tar.xz"))
(sha256
(base32
- "1yzy5jikkv67ynp576j926kg8zdldh8j4b57l0ixcnjdcyr4lc17"))))
+ "1gf8b1k6i4dlwskwq7dd2vz9bzc3m1qnknj9daq2vp39vmxpg5nk"))))
;; For subtree documentation.
("asciidoc" ,asciidoc)
("docbook-xsl" ,docbook-xsl)
@@ -678,7 +679,8 @@ collaboration using typical untrusted file hosts or services.")
(define-public cgit
(package
(name "cgit")
- (version "1.2.1")
+ ;; Update the ‘git-source’ input as well.
+ (version "1.2.2")
(source (origin
(method url-fetch)
(uri (string-append
@@ -686,7 +688,7 @@ collaboration using typical untrusted file hosts or services.")
version ".tar.xz"))
(sha256
(base32
- "1gw2j5xc5qdx2hwiwkr8h6kgya7v9d9ff9j32ga1dys0cca7qm1w"))))
+ "0dmjsisigjz5k4gw7gm55qhm3wazzbm4cg7a5dwf0gqg9nacx5rz"))))
(build-system gnu-build-system)
(arguments
'(#:tests? #f ; XXX: fail to build the in-source git.
@@ -764,11 +766,11 @@ collaboration using typical untrusted file hosts or services.")
("git-source"
,(origin
(method url-fetch)
- ;; XXX CGit is currently incompatible with Git > 2.18.
- (uri "mirror://kernel.org/software/scm/git/git-2.18.2.tar.xz")
+ ;; cgit is tightly bound to git. Use GIT_VER from the Makefile,
+ ;; which may not match the current (package-version git).
+ (uri "mirror://kernel.org/software/scm/git/git-2.25.0.tar.xz")
(sha256
- (base32
- "1gmcz5k8sa6phzhhv6zjl8izbyqnxcdb8ns8kd2czyak0g409vrq"))))
+ (base32 "1l58v42aazj0x9276gk8r9mwyl9pgp9w99aakz4xfhzv7wd2jq60"))))
("openssl" ,openssl)
("groff" ,groff)
("python" ,python)
@@ -783,6 +785,47 @@ collaboration using typical untrusted file hosts or services.")
a built-in cache to decrease server I/O pressure.")
(license license:gpl2)))
+(define-public python-git-multimail
+ (package
+ (name "python-git-multimail")
+ (version "1.5.0.post1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "git-multimail" version))
+ (sha256
+ (base32
+ "1zkrbsa70anwpw86ysfwalrb7nsr064kygfiyikyq1pl9pcl969y"))))
+ (build-system python-build-system)
+ (arguments
+ '(#:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'patch
+ (lambda* (#:key inputs #:allow-other-keys)
+ (substitute* "git-multimail/git_multimail.py"
+ (("GIT_EXECUTABLE = 'git'")
+ (string-append "GIT_EXECUTABLE = '"
+ (assoc-ref inputs "git") "/bin/git"
+ "'"))
+ (("/usr/sbin/sendmail")
+ (string-append (assoc-ref inputs "sendmail")
+ "/usr/sbin/sendmail")))
+ #t)))))
+ (inputs
+ `(("git" ,git)
+ ("sendmail" ,sendmail)))
+ (home-page "https://github.com/git-multimail/git-multimail")
+ (synopsis "Send notification emails for Git pushes")
+ (description
+ "This hook sends emails describing changes introduced by pushes to a Git
+repository. For each reference that was changed, it emits one ReferenceChange
+email summarizing how the reference was changed, followed by one Revision
+email for each new commit that was introduced by the reference change.
+
+This script is designed to be used as a post-receive hook in a Git
+repository")
+ (license license:gpl2)))
+
(define-public python-ghp-import
(package
(name "python-ghp-import")
@@ -1006,7 +1049,7 @@ lot easier.")
(define-public stgit
(package
(name "stgit")
- (version "0.18")
+ (version "0.21")
(source
(origin
(method git-fetch)
@@ -1015,20 +1058,36 @@ lot easier.")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
- (base32 "0ydgg744m671nkhg7h4q2z3b9vpbc9914rbc0wcgimqfqsxkxx2y"))))
+ (base32 "00pmz93znl418lsjwy4mr0chp8i2w27h1xjysa05f62smsv91yyc"))))
(build-system python-build-system)
+ (native-inputs
+ `(("perl" ,perl)))
(inputs
`(("git" ,git)))
(arguments
- `(#:python ,python-2
- #:phases
+ `(#:phases
(modify-phases %standard-phases
+ (add-after 'unpack 'hard-code-version
+ (lambda _
+ ;; setup.py tries to cleverly extract the version number from the
+ ;; git history, which the source checkout lacks. Hard-code one.
+ (substitute* "setup.py"
+ (("get_ver\\(\\)")
+ (format #f "'~a'" ,version)))
+ #t))
+ (add-before 'check 'patch-tests
+ (lambda _
+ (substitute* (list "t/t1900-mail.sh"
+ "t/t7504-commit-msg-hook.sh")
+ (("/bin/sh")
+ (which "bash")))
+ #t))
(replace 'check
(lambda _
- ;; Two tests will fail -> disable them. TODO: fix the failing tests
- (delete-file "t/t3300-edit.sh")
- (delete-file "t/t7504-commit-msg-hook.sh")
- (invoke "make" "test"))))))
+ (invoke "make"
+ "PERL_PATH=perl"
+ (string-append "SHELL_PATH=" (which "bash"))
+ "test"))))))
(home-page "http://procode.org/stgit/")
(synopsis "Stacked Git")
(description
@@ -1244,26 +1303,39 @@ control to Git repositories.")
`(#:phases
(modify-phases %standard-phases
(replace 'check
- (lambda _
- ;; The following tests are known to fail.
- (for-each (lambda (file)
- (delete-file (string-append "tests/" file)))
- '("test-extdiff.t"
- "test-hghave.t"
- "test-hgwebdir.t"
- "test-http-branchmap.t"
- "test-logtoprocess.t"
- "test-merge-combination.t"
- "test-nointerrupt.t"
- "test-patchbomb.t"
- "test-pull-bundle.t"
- "test-push-http.t"
- "test-run-tests.t"
- "test-serve.t"
- "test-subrepo-deep-nested-change.t"
- "test-subrepo-recursion.t"
- "test-transplant.t"))
- (invoke "make" "check"))))))
+ (lambda* (#:key tests? #:allow-other-keys)
+ (with-directory-excursion "tests"
+ ;; The following tests are known to fail.
+ (for-each (lambda (file)
+ (delete-file file))
+ '("test-extdiff.t"
+ "test-hghave.t"
+ "test-hgwebdir.t"
+ "test-http-branchmap.t"
+ "test-logtoprocess.t"
+ "test-merge-combination.t"
+ "test-nointerrupt.t"
+ "test-patchbomb.t"
+ "test-pull-bundle.t"
+ "test-push-http.t"
+ "test-run-tests.t"
+ "test-serve.t"
+ "test-subrepo-deep-nested-change.t"
+ "test-subrepo-recursion.t"
+ "test-transplant.t"))
+ (when tests?
+ (invoke "./run-tests.py"
+ ;; ‘make check’ does not respect ‘-j’.
+ (string-append "-j" (number->string
+ (parallel-job-count)))
+ ;; The default time-outs are too low for many systems.
+ ;; Raise them generously: Guix enforces its own.
+ "--timeout" "86400"
+ "--slowtimeout" "86400"
+ ;; The test suite takes a long time and produces little
+ ;; output by default. Prevent timeouts due to silence.
+ "-v"))
+ #t))))))
;; The following inputs are only needed to run the tests.
(native-inputs
`(("python-nose" ,python-nose)