Author: egorochkin
Date: Sun Jan 2 22:13:56 2011
New Revision: 25349
URL: https://svn.nixos.org/websvn/nix/?rev=25349&sc=1
Log:
nixos-checkout: add support for git svn. Patch by Florian Friesdorf.
Modified:
nixos/trunk/modules/installer/tools/nixos-checkout.nix
Modified: nixos/trunk/modules/installer/tools/nixos-checkout.nix
==============================================================================
--- nixos/trunk/modules/installer/tools/nixos-checkout.nix Sun Jan 2
20:09:25 2011 (r25348)
+++ nixos/trunk/modules/installer/tools/nixos-checkout.nix Sun Jan 2
22:13:56 2011 (r25349)
@@ -55,6 +55,7 @@
default = {
svn = { valid = "[ -d .svn ]"; env = [ pkgs.coreutils pkgs.subversion
]; };
git = { valid = "[ -d .git ]"; env = [ pkgs.coreutils pkgs.git
pkgs.gnused /* FIXME: use full path to sed in nix-pull */ ]; };
+ gitsvn = { valid = "[ -d .git/svn ]"; env = [ pkgs.coreutils
pkgs.gitFull pkgs.gnused ]; };
};
description = ''
Defines, for each supported version control system
@@ -111,6 +112,28 @@
[ -d ${t} ] || { echo "git initialize failed to create target directory
${t}"; exit 1; }
${update}'';
}
+ else if attrs.type == "gitsvn" then # sanity check for existing attrs
+ let
+ a = {
+ # add gitsvn defaults
+ url = "https://svn.nixos.org/repos/nix/${repo}";
+ # XXX: same default target as svn: good/bad?
+ target = "/etc/nixos/${repo}";
+ initialize = "git svn clone -s ${a.url} ${a.target}";
+ # splitting this in fetch and rebase -l helps to recover partly
cloned repo
+ update = "git svn fetch && git svn rebase -l";
+ } // attrs;
+ t = escapeShellArg a.target;
+ in
+ rec {
+ inherit (a) type target;
+ default = if a ? default then a.default else false;
+ update = "cd ${t} && ${a.update}";
+ initialize = ''
+ cd $(dirname ${t}) && ${a.initialize}
+ [ -d ${t} ] || { echo "gitsvn initialize failed to create target
directory ${t}"; exit 1; }
+ ${update}'';
+ }
else throw "unkown repo type ${attrs.type}";
# apply prepareRepoAttrs on each repo definition
_______________________________________________
nix-commits mailing list
[email protected]
http://mail.cs.uu.nl/mailman/listinfo/nix-commits