gnu: Add git-tools.

* gnu/packages/version-control.scm (git-tools): New variable.

Change-Id: I0ac65c24f787714fe0ef234fce639c6ec561600d
Signed-off-by: 宋文武 <iyzsong@member.fsf.org>
This commit is contained in:
Suhail Singh 2024-07-30 01:05:56 -04:00 committed by 宋文武
parent 5647942d63
commit dae712644d
No known key found for this signature in database
GPG key ID: D415BF253B515976

View file

@ -52,6 +52,7 @@
;;; Copyright © 2023 Steve George <steve@futurile.net>
;;; Copyright © 2023 Josselin Poiret <dev@jpoiret.xyz>
;;; Copyright © 2024 Hilton Chain <hako@ultrarare.space>
;;; Copyright © 2024 Suhail Singh <suhail@bayesians.ca>
;;;
;;; This file is part of GNU Guix.
;;;
@ -830,6 +831,52 @@ (define-public git-cal
to GitHub contributions calendar.")
(license license:expat)))
(define-public git-tools
(package
(name "git-tools")
(version "2022.12")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/MestreLion/git-tools")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "0s8x74ggcr6nqzplr0jfzp3cavq0nmdm35hqywzs2bbq75i1mijd"))))
(build-system copy-build-system)
(arguments
`(#:install-plan '(("git-branches-rename" "bin/git-branches-rename")
("git-clone-subset" "bin/git-clone-subset")
("git-find-uncommitted-repos"
"bin/git-find-uncommitted-repos")
("git-rebase-theirs" "bin/git-rebase-theirs")
("git-restore-mtime" "bin/git-restore-mtime")
("git-strip-merge" "bin/git-strip-merge")
("./man1/" "share/man/man1"
#:include-regexp (".*\\.1$")))))
(inputs (list bash-minimal git-minimal python-minimal))
(home-page "https://github.com/MestreLion/git-tools")
(synopsis "Assorted git-related scripts and tools")
(description
"@code{git-tools} is a collection of bash and python scripts.
Specifically, it includes the following tools:
@itemize
@item @code{git-branches-rename}: Batch rename branches with a matching prefix
to another prefix
@item @code{git-clone-subset}: Clone a subset of a git repository
@item @code{git-find-uncommitted-repos}: Recursively list repositories in the
given directory(ies) that have uncommitted changes
@item @code{git-rebase-theirs}: Resolve rebase conflicts and failed
cherry-picks by favoring \"theirs\" version
@item @code{git-restore-mtime}: Restore modification time of files based on
the date of the most recent commit that modified them
@item @code{git-strip-merge}: A git-merge wrapper that deletes files on a
\"foreign\" branch before merging
@end itemize")
(license license:gpl3+)))
(define-public xdiff
(let ((revision "0")
(commit "a137bc7ee6c76618ed1737c257548eaa10ac0089"))