summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--pkgs/applications/version-management/mr/default.nix57
-rw-r--r--pkgs/top-level/all-packages.nix2
2 files changed, 59 insertions, 0 deletions
diff --git a/pkgs/applications/version-management/mr/default.nix b/pkgs/applications/version-management/mr/default.nix
new file mode 100644
index 00000000000..ca272504517
--- /dev/null
+++ b/pkgs/applications/version-management/mr/default.nix
@@ -0,0 +1,57 @@
+{ stdenv, fetchgit, fetchgitrevision, perl }:
+
+stdenv.mkDerivation rec {
+
+  version = "1.12";
+  name = "mr-" + version;
+
+  src = fetchgit {
+    url = "git://git.kitenet.net/mr.git";
+    rev = "353f63c968368edea9b14261f510c34ce4e0c97f";
+  };
+
+  buildInputs = [perl];
+
+  buildPhase = ''
+    make build
+  '';
+
+  installPhase = ''
+    ensureDir $out/bin
+    ensureDir $out/share/man/man1
+    cp mr $out/bin
+    cp webcheckout $out/bin
+    cp mr.1 $out/share/man/man1
+    cp webcheckout.1 $out/share/man/man1
+  '';
+      
+  meta = {
+    description = "Multiple Repository management tool";
+    longDescription = ''The mr(1) command can checkout, update, or perform other actions on a
+      set of repositories as if they were one combined respository. It
+      supports any combination of subversion, git, cvs, mercurial, bzr,
+      darcs, cvs, vcsh, fossil and veracity repositories, and support for
+      other revision control systems can easily be added. (There are
+      extensions adding support for unison and git-svn.)
+
+      It is extremely configurable via simple shell scripting. Some examples
+      of things it can do include:
+
+        - Update a repository no more frequently than once every twelve
+          hours.
+        - Run an arbitrary command before committing to a
+          repository.
+        - When updating a git repository, pull from two
+          different upstreams and merge the two together.
+        - Run several repository updates in parallel, greatly speeding
+          up the update process.
+        - Remember actions that failed due to a laptop being
+          offline, so they can be retried when it comes back online.
+    '';
+    homepage = http://joeyh.name/code/mr/;
+    license = "GPLv2+";
+    platforms = stdenv.lib.platforms.unix;
+    maintainers = [ stdenv.lib.maintainers.antono ];
+  };
+}
+ 
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 27ec1527ff3..61eb56e41d1 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -1056,6 +1056,8 @@ let
 
   mpage = callPackage ../tools/text/mpage { };
 
+  mr = callPackage ../applications/version-management/mr { };
+
   mscgen = callPackage ../tools/graphics/mscgen { };
 
   msf = builderDefsPackage (import ../tools/security/metasploit/3.1.nix) {