summary refs log tree commit diff
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.scm72
1 files changed, 69 insertions, 3 deletions
diff --git a/gnu/packages/version-control.scm b/gnu/packages/version-control.scm
index 86dcea908c..9716a6f27a 100644
--- a/gnu/packages/version-control.scm
+++ b/gnu/packages/version-control.scm
@@ -48,6 +48,7 @@
 ;;; Copyright © 2022 Dhruvin Gandhi <contact@dhruvin.dev>
 ;;; Copyright © 2015, 2022 David Thompson <davet@gnu.org>
 ;;; Copyright © 2023 Nicolas Graves <ngraves@ngraves.fr>
+;;; Copyright © 2023 Kjartan Oli Agustsson <kjartanoli@disroot.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -79,6 +80,7 @@
   #:use-module (guix build-system go)
   #:use-module (guix build-system perl)
   #:use-module (guix build-system python)
+  #:use-module (guix build-system qt)
   #:use-module (guix build-system trivial)
   #:use-module (gnu packages apr)
   #:use-module (gnu packages autotools)
@@ -115,7 +117,7 @@
   #:use-module (gnu packages ncurses)
   #:use-module (gnu packages ssh)
   #:use-module (gnu packages web)
-  #:use-module (gnu packages openstack)
+  #:use-module (gnu packages patchutils)
   #:use-module (gnu packages pcre)
   #:use-module (gnu packages perl)
   #:use-module (gnu packages perl-check)
@@ -128,7 +130,6 @@
   #:use-module (gnu packages python-web)
   #:use-module (gnu packages python-xyz)
   #:use-module (gnu packages readline)
-  #:use-module (gnu packages rsync)
   #:use-module (gnu packages ruby)
   #:use-module (gnu packages sqlite)
   #:use-module (gnu packages texinfo)
@@ -1297,7 +1298,7 @@ and additionally allows you to access the Git repository more directly using
 either a pure Python implementation, or the faster, but more resource intensive
  @command{git} command implementation.")
      (license license:bsd-3)))
- 
+
 (define-public savane
   (package
     (name "savane")
@@ -3554,6 +3555,40 @@ has tools for tagging, merging, checking in/out, and other user operations.
 TkDiff is included for browsing and merging your changes.")
     (license license:gpl2+)))
 
+(define-public qgit
+  (package
+    (name "qgit")
+    (version "2.10")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                     (url "https://github.com/tibirna/qgit")
+                     (commit (string-append "qgit-" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "10j5xll7ai1rb2ybyblbgqm762bqspffpf33fdr61qdchnp2gkf4"))))
+    (build-system qt-build-system)
+    (arguments
+     (list #:tests? #f)) ;no tests
+    (propagated-inputs
+     (list git))
+    (home-page "https://github.com/tibirna/qgit")
+    (synopsis "Graphical front-end for git")
+    (description
+     "Qgit is a graphical front-end for git, with features to:
+@itemize
+@item view revisions, diffs, files history, files annotation and archive tree,
+@item commit changes visually cherry picking modified files,
+@item apply or save patch series from selected commits, drag and drop commits,
+@item associate commands sequences, scripts and anything else executable to a
+ custom action,
+@item push/pop commits,
+@item apply/save/create patches
+@item and cherry pick single modified files.
+@end itemize")
+    (license license:gpl3+)))
+
 (define-public git-filter-repo
   (package
     (name "git-filter-repo")
@@ -3689,3 +3724,34 @@ create and manage trackers, tickets
 interact with GraphQL APIs directly
 @end table")
     (license license:agpl3)))
+
+(define-public commit-patch
+  (package
+    (name "commit-patch")
+    (version "2.6.2")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append
+                    "https://github.com/caldwell/commit-patch/releases/download/"
+                    version "/commit-patch-" version ".tar.gz"))
+              (sha256
+               (base32
+                "0v11vjyisk243zi0ym90bnqb229j7iaqx1lwqdkszxzn1yxwq4ck"))))
+    (build-system copy-build-system)
+    (arguments
+     (list #:phases #~(modify-phases %standard-phases
+                        (add-after 'unpack 'fix-paths
+                          (lambda* (#:key inputs #:allow-other-keys)
+                            (patch-shebang "commit-patch"))))
+           #:install-plan ''(("commit-patch" "bin/")
+                             ("commit-patch-buffer.el"
+                              "share/emacs/site-lisp/"))))
+    (inputs (list perl))
+    (propagated-inputs (list patchutils))
+    (synopsis "Commit parts of changes to VCS repositories")
+    (description
+     "commit-patch is a utility that lets you check in select portions of a
+file into Darcs, Git, Mercurial, Bazaar, Subversion, or CVS repositories.  It
+comes as a command line app and also an Emacs interface.")
+    (home-page "https://porkrind.org/commit-patch/")
+    (license license:gpl2+)))