summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKyle Meyer <kyle@kyleam.com>2018-11-29 18:24:51 -0500
committerLudovic Courtès <ludo@gnu.org>2018-12-02 23:30:51 +0100
commit3855506f8470f6d105fd70759b5c1a6dc53ede68 (patch)
tree3cd8814a1200ed1914fc24c41dab52cdbd571cc7
parentf31e586b5873d9ec6309f562692b0a11e6d22b95 (diff)
gnu: Add git-imerge.
* gnu/packages/version-control.scm (git-imerge): New variable. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
-rw-r--r--gnu/packages/version-control.scm48
1 files changed, 47 insertions, 1 deletions
diff --git a/gnu/packages/version-control.scm b/gnu/packages/version-control.scm
index cec3e5fc6c..d068c30735 100644
--- a/gnu/packages/version-control.scm
+++ b/gnu/packages/version-control.scm
@@ -7,7 +7,7 @@
;;; Copyright © 2014, 2015, 2016 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2014, 2016 Eric Bavier <bavier@member.fsf.org>
;;; Copyright © 2015, 2016, 2017, 2018 Efraim Flashner <efraim@flashner.co.il>
-;;; Copyright © 2015 Kyle Meyer <kyle@kyleam.com>
+;;; Copyright © 2015, 2018 Kyle Meyer <kyle@kyleam.com>
;;; Copyright © 2015, 2017, 2018 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2016, 2017 Leo Famulari <leo@famulari.name>
;;; Copyright © 2016, 2017, 2018 Nils Gillmann <ng0@n0.is>
@@ -2395,3 +2395,49 @@ used to keep a folder in sync between computers.")
given commit into the specified ref(s). It has various options that control
how information about the merge is displayed.")
(license license:gpl2+))))
+
+(define-public git-imerge
+ (package
+ (name "git-imerge")
+ (version "1.1.0")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://github.com/mhagger/git-imerge/archive/v"
+ version ".tar.gz"))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32
+ "0a6ay8fpgz3yd84jc40w41x0rcfpan6bcq4wd1hxiiqwb51jysb2"))))
+ (build-system gnu-build-system)
+ (arguments
+ `(#:tests? #f ; The are only manual test scripts.
+ #:make-flags (list (string-append "DESTDIR=" %output)
+ "PREFIX=")
+ #:phases
+ (modify-phases %standard-phases
+ (delete 'configure)
+ (add-before 'install 'patch-git
+ (lambda* (#:key inputs #:allow-other-keys)
+ (let ((git (string-append (assoc-ref inputs "git")
+ "/bin/git")))
+ (substitute* "git-imerge"
+ (("'git'") (string-append "'" git "'")))
+ #t)))
+ (add-after 'install 'wrap-script
+ (lambda* (#:key outputs #:allow-other-keys)
+ (wrap-program (string-append (assoc-ref outputs "out")
+ "/bin/git-imerge")
+ `("PYTHONPATH" ":" prefix (,(getenv "PYTHONPATH"))))
+ #t)))))
+ (inputs
+ `(("git" ,git)
+ ("python" ,python-wrapper)))
+ (home-page "https://github.com/mhagger/git-imerge")
+ (synopsis "Incremental merge for Git")
+ (description "This Git extension defines a subcommand, @code{imerge},
+which performs an incremental merge between two branches. Its two primary
+design goals are to reduce the pain of resolving merge conflicts by finding
+the smallest possible conflicts and to allow a merge to be saved, tested,
+interrupted, published, and collaborated on while in progress.")
+ (license license:gpl2+)))