summaryrefslogtreecommitdiff
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.scm82
1 files changed, 50 insertions, 32 deletions
diff --git a/gnu/packages/version-control.scm b/gnu/packages/version-control.scm
index 3b23e8b873..2ee8247071 100644
--- a/gnu/packages/version-control.scm
+++ b/gnu/packages/version-control.scm
@@ -30,6 +30,7 @@
;;; Copyright © 2020 John D. Boy <jboy@bius.moe>
;;; Copyright © 2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
;;; Copyright © 2020 Vinicius Monego <monego@posteo.net>
+;;; Copyright © 2020 Tanguy Le Carrour <tanguy@bioneland.org>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -52,6 +53,7 @@
#:use-module (guix packages)
#:use-module (guix download)
#:use-module (guix git-download)
+ #:use-module (guix hg-download)
#:use-module (guix build-system cmake)
#:use-module (guix build-system gnu)
#:use-module (guix build-system go)
@@ -1444,7 +1446,7 @@ control to Git repositories.")
(define-public pre-commit
(package
(name "pre-commit")
- (version "2.6.0")
+ (version "2.7.1")
(source
(origin
;; No tests in the PyPI tarball.
@@ -1454,7 +1456,7 @@ control to Git repositories.")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
- (base32 "144hcnz8vz07nkx7hk8a3ac822186ardwxa8jnl6s8qvm5ip92f2"))))
+ (base32 "0n7qby5a4yz3s02nqcp5js6jg9wrd0x7msblxwb1883ds4b2b71a"))))
(build-system python-build-system)
(arguments
`(#:phases
@@ -1490,7 +1492,7 @@ control to Git repositories.")
" and not test_run_a_ruby_hook"
" and not test_run_ruby_hook_with_disable_shared_gems"
" and not test_run_versioned_ruby_hook"
- ;; Disable Cargo tests
+ ;; Disable Cargo tests.
" and not test_additional_rust_cli_dependencies_installed"
" and not test_additional_rust_lib_dependencies_installed"
" and not test_local_rust_additional_dependencies"
@@ -1517,14 +1519,14 @@ control to Git repositories.")
" and not test_too_new_version"
" and not test_try_repo_uncommitted_changes"
" and not test_versions_ok"
- ;; This test tries to activate a virtualenv
+ ;; This test tries to activate a virtualenv.
" and not test_healthy_venv_creator"
;; Fatal error: Not a Git repository.
" and not test_all_cmds"
" and not test_try_repo"
- ;; No module named 'pip._internal.cli.main'
+ ;; No module named 'pip._internal.cli.main'.
" and not test_additional_dependencies_roll_forward"
- ; Assertion errors
+ ;; Assertion errors.
" and not test_install_existing_hooks_no_overwrite"
" and not test_uninstall_restores_legacy_hooks"))))
(add-before 'reset-gzip-timestamps 'make-files-writable
@@ -1536,7 +1538,7 @@ control to Git repositories.")
(find-files out "\\.gz$"))
#t))))))
(native-inputs
- `(("git" ,git)
+ `(("git" ,git-minimal)
("python-pytest" ,python-pytest)))
(inputs
`(("python-cfgv" ,python-cfgv)
@@ -1553,40 +1555,17 @@ specify a list of hooks you want and pre-commit manages the installation and
execution of any hook written in any language before every commit.")
(license license:expat)))
-(define (mercurial-patch name revision hash)
- (origin
- (method url-fetch)
- (uri (string-append "https://www.mercurial-scm.org/repo/hg/raw-rev/" revision))
- (file-name (string-append "mercurial-" name ".patch"))
- (sha256 (base32 hash))))
-
-(define %mercurial-patches
- (list
- ;; These three patches fixes compatibility with the updated gzip module
- ;; in Python 3.8.2: <https://bz.mercurial-scm.org/show_bug.cgi?id=6284>.
- (mercurial-patch "python-mtime" "6c36a521572edf3a79ee567b118469b3192037cc"
- "0bmm7y40r8s081ws2sjvn1v8kvyfan4a97jl0fhdh7yc2pzxlzqq")
- (mercurial-patch "indent-gzip" "a23b859ad17dd0a5b9bb37846b69b5e30f99c44c"
- "1spscv9dgqv38m7h1liki93ax6w97gxayg17fr7wr6acjdfccpr9")
- (mercurial-patch "python-gzip" "b7ca03dff14c63d64ad7bfa36a2d0a36a6b62253"
- "0p88ffhx0kk21ssrsb156ffhpcb7g8mkwwkmq49qpmbm5ag2paf0")
- ;; This fixes an incompatibility with os.isfile in Python 3.8:
- ;; <https://bz.mercurial-scm.org/show_bug.cgi?id=6287>.
- (mercurial-patch "os-isfile" "6a8738dc4a019da4c9df5c26961aa09d45ce1c68"
- "0lr069m12kzrkmr1pmhaxg5lxmdwxabsza61qp1i1q70g7sy8lvy")))
-
(define-public mercurial
(package
(name "mercurial")
- (version "5.3.1")
+ (version "5.5.1")
(source (origin
(method url-fetch)
(uri (string-append "https://www.mercurial-scm.org/"
"release/mercurial-" version ".tar.gz"))
- (patches %mercurial-patches)
(sha256
(base32
- "1nbjpzjrzgql4hrvslpxwbcgn885ikq6ba1yb4w6p78rw9nzkhgp"))))
+ "0x08yjs26j88kh1bvl2g3r24lnfc023ry3i1cxfq6haray6sv5ag"))))
(build-system python-build-system)
(arguments
`(#:phases
@@ -1615,6 +1594,13 @@ execution of any hook written in any language before every commit.")
;; not in 'guix environment -C' (even without /bin/sh)?
"test-nointerrupt.t"
+ ;; FIXME: This gets killed but does not receive an interrupt.
+ "test-commandserver.t"
+
+ ;; Only works when run in a hg-repo, not in an
+ ;; extracted tarball
+ "test-doctest.py"
+
;; TODO: the fqaddr() call fails in the build
;; container, causing these server tests to fail.
"test-hgwebdir.t"
@@ -1650,6 +1636,32 @@ It efficiently handles projects of any size
and offers an easy and intuitive interface.")
(license license:gpl2+)))
+(define-public python-hg-evolve
+ (package
+ (name "python-hg-evolve")
+ (version "10.0.1")
+ (source
+ (origin
+ (method hg-fetch)
+ (uri (hg-reference
+ (url "https://www.mercurial-scm.org/repo/evolve")
+ (changeset version)))
+ (file-name (string-append name "-" version "-checkout"))
+ (sha256
+ (base32
+ "1lz407373lfam9n02gq0l0rc2sjvn0m96kbzy93ipia3ika8fa68"))))
+ (build-system python-build-system)
+ (arguments
+ ;; Tests need mercurial source code.
+ '(#:tests? #f))
+ (propagated-inputs
+ `(("mercurial" ,mercurial)))
+ (home-page "https://www.mercurial-scm.org/doc/evolution/")
+ (synopsis "Flexible evolution of Mercurial history")
+ (description "Evolve is a Mercurial extension for faster and safer mutable
+history. It implements the changeset evolution concept for Mercurial.")
+ (license license:gpl2)))
+
(define-public neon
(package
(name "neon")
@@ -2591,6 +2603,12 @@ interrupted, published, and collaborated on while in progress.")
#:install-source? #f
#:phases
(modify-phases %standard-phases
+ (add-before 'build 'man-gen
+ ;; Without this, the binary generated in 'build
+ ;; phase won't have any embedded usage-text.
+ (lambda _
+ (with-directory-excursion "src/github.com/git-lfs/git-lfs"
+ (invoke "make" "mangen"))))
(add-after 'build 'build-man-pages
(lambda _
(with-directory-excursion "src/github.com/git-lfs/git-lfs"