aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gnu/packages/version-control.scm47
1 files changed, 47 insertions, 0 deletions
diff --git a/gnu/packages/version-control.scm b/gnu/packages/version-control.scm
index cf7f7b0ad8..d5887f3fbc 100644
--- a/gnu/packages/version-control.scm
+++ b/gnu/packages/version-control.scm
@@ -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 @@ on @command{git}, and use any regular Git hosting service.")
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"))