58 lines
1.8 KiB
Nix
58 lines
1.8 KiB
Nix
|
{ 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 ];
|
||
|
};
|
||
|
}
|
||
|
|