summaryrefslogtreecommitdiffstats
path: root/pkgs/applications/version-management/mr
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/mr
parent2424ac71e07bda9f8950ce17a931285f89072fe8 (diff)
Added mr - Multiple Repository management tool
Diffstat (limited to 'pkgs/applications/version-management/mr')
-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 000000000000..ca272504517a
--- /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 ];
+ };
+}
+