summary refs log tree commit diff
path: root/pkgs/applications/version-management
diff options
context:
space:
mode:
authorAntono Vasiljev <self@antono.info>2012-07-07 17:12:18 +0200
committerAntono Vasiljev <self@antono.info>2012-07-07 17:12:18 +0200
commit631a59e449c878689cc59c23cdf932cd7a695461 (patch)
treeea0dce36eb1fd6192075c728bc90d1a19e12d449 /pkgs/applications/version-management
parent2424ac71e07bda9f8950ce17a931285f89072fe8 (diff)
downloadnixpkgs-631a59e449c878689cc59c23cdf932cd7a695461.tar
nixpkgs-631a59e449c878689cc59c23cdf932cd7a695461.tar.gz
nixpkgs-631a59e449c878689cc59c23cdf932cd7a695461.tar.bz2
nixpkgs-631a59e449c878689cc59c23cdf932cd7a695461.tar.lz
nixpkgs-631a59e449c878689cc59c23cdf932cd7a695461.tar.xz
nixpkgs-631a59e449c878689cc59c23cdf932cd7a695461.tar.zst
nixpkgs-631a59e449c878689cc59c23cdf932cd7a695461.zip
Added mr - Multiple Repository management tool
Diffstat (limited to 'pkgs/applications/version-management')
-rw-r--r--pkgs/applications/version-management/mr/default.nix57
1 files changed, 57 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 ];
+  };
+}
+