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.scm66
1 files changed, 56 insertions, 10 deletions
diff --git a/gnu/packages/version-control.scm b/gnu/packages/version-control.scm
index f8b88975ac..6726bc339b 100644
--- a/gnu/packages/version-control.scm
+++ b/gnu/packages/version-control.scm
@@ -31,13 +31,14 @@
;;; Copyright © 2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
;;; Copyright © 2020 Vinicius Monego <monego@posteo.net>
;;; Copyright © 2020 Tanguy Le Carrour <tanguy@bioneland.org>
-;;; Copyright © 2020 Michael Rohleder <mike@rohleder.de>
+;;; Copyright © 2020, 2021 Michael Rohleder <mike@rohleder.de>
;;; Copyright © 2021 Greg Hogan <code@greghogan.com>
;;; Copyright © 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;; Copyright © 2021 Chris Marusich <cmmarusich@gmail.com>
;;; Copyright © 2021 Léo Le Bouter <lle-bout@zaclys.net>
;;; Copyright © 2021 LibreMiami <packaging-guix@libremiami.org>
;;; Copyright © 2021 Xinglu Chen <public@yoctocell.xyz>
+;;; Copyright © 2021 François J. <francois-oss@avalenn.eu>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -188,6 +189,9 @@ as well as the classic centralized workflow.")
("bash" ,bash-minimal)
("bash-for-tests" ,bash)
("gettext" ,gettext-minimal)
+ ;; To build the man pages from the git sources, we would need a dependency
+ ;; on a full XML tool chain, and building it actually takes ages. So we
+ ;; use this lazy approach and use released tarball.
("git-manpages"
,(origin
(method url-fetch)
@@ -1264,7 +1268,7 @@ lot easier.")
(define-public stgit
(package
(name "stgit")
- (version "1.0")
+ (version "1.1")
(source
(origin
(method git-fetch)
@@ -1273,7 +1277,7 @@ lot easier.")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
- (base32 "0dixgvjlsk3xisj8blzdhh0nphm5zqkjbj081wgsba52z4zq1y0q"))))
+ (base32 "1jp74qsgw3f9c8xgaaqvmhfh4ar3n1ns5ncm8glvqyywlxldxi0n"))))
(build-system python-build-system)
(native-inputs
`(("perl" ,perl)))
@@ -1316,7 +1320,7 @@ manipulate them in various ways.")
(define-public vcsh
(package
(name "vcsh")
- (version "1.20151229")
+ (version "1.20190621")
(source
(origin
(method git-fetch)
@@ -1325,7 +1329,7 @@ manipulate them in various ways.")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
- (base32 "1grpj45nbpv4j60vd2kg4rj53zrm0bc0h9l4pfd3c2mwbvywm6ab"))))
+ (base32 "1s9l47wm9r7sndcgc778mq60wkzkhvfv7rkrwci5kjvw8vsddvcc"))))
(build-system gnu-build-system)
(native-inputs
`(("which" ,which)))
@@ -1336,9 +1340,18 @@ manipulate them in various ways.")
("perl-shell-command" ,perl-shell-command)
("perl-test-most" ,perl-test-most)))
(arguments
- '(#:phases (modify-phases %standard-phases
- (delete 'configure)
- (delete 'build))
+ '(#:phases
+ (modify-phases %standard-phases
+ (delete 'configure)
+ (delete 'build)
+ (add-after 'install 'install-bash-completion
+ ;; As of 1.20190621, zsh completion is installed by default but bash
+ ;; completion is not. Do so manually.
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (completions (string-append out "/etc/bash_completion.d")))
+ (mkdir-p completions)
+ (copy-file "_vcsh_bash" (string-append completions "/vcsh"))))))
#:make-flags (list (string-append "PREFIX="
(assoc-ref %outputs "out")))
#:test-target "test"))
@@ -1919,14 +1932,14 @@ RCS, PRCS, and Aegis packages.")
(define-public cvs-fast-export
(package
(name "cvs-fast-export")
- (version "1.55")
+ (version "1.56")
(source (origin
(method url-fetch)
(uri (string-append "http://www.catb.org/~esr/cvs-fast-export/"
"cvs-fast-export-" version ".tar.gz"))
(sha256
(base32
- "06y2myhhv2ap08bq7d7shq0b7lq6wgznwrpz6622xq66cxkf2n5g"))))
+ "058bzp3npng48ascls943m16kgvrl0h197a10brf7mvx8zpfc7sc"))))
(build-system gnu-build-system)
(arguments
'(#:phases
@@ -3071,3 +3084,36 @@ If several repos are related, it helps to see their status together.")
makes a directory under a specific root directory (by default @file{~/ghq})
using the remote repository URL's host and path.")
(license license:expat)))
+
+(define-public git-filter-repo
+ (package
+ (name "git-filter-repo")
+ (version "2.29.0")
+ (source
+ (origin
+ ;; Use a release tarball instead of 'git-fetch' because it contains
+ ;; pre-compiled man-pages which are too hard to build in this context
+ ;; as it depends on Git's Makefile.
+ (method url-fetch)
+ (uri (string-append "https://github.com/newren/git-filter-repo/releases/"
+ "download/v" version
+ "/git-filter-repo-" version ".tar.xz"))
+ (sha256
+ (base32
+ "00nn7k9jqrybb762486fmigsnbcn9lbvimgpfvvarz4ikdp9y9pb"))))
+ (build-system copy-build-system)
+ (arguments
+ `(#:install-plan
+ '(("git-filter-repo" "libexec/git-core/")
+ ("Documentation/man1/" "share/man/man1")
+ ("/" "" #:include ()))))
+ (inputs `(("python" ,python))) ;for the shebang
+ (home-page "https://github.com/newren/git-filter-repo")
+ (synopsis "Quickly rewrite Git repository history")
+ (description
+ "@command{git filter-repo} is a versatile tool for rewriting history,
+which roughly falls into the same space of tool like git filter-branch but
+with more capabilities. @command{git filter-repo} is now recommended by the
+Git project instead of @command{git filter-branch}.")
+ (license (list license:expat ;; Main license.
+ license:gpl2)))) ;; For test harness.