forked from mirrors/nixpkgs
fetchgit: add 'deepClone' argument to disable shallow fetching
This patch resolves https://github.com/NixOS/nixpkgs/issues/6395. Deep cloning is useful in combination with 'leaveDotGit' for builds that want to run "git describe" to obtain a proper version string, etc., like the 'haskellngPackages.cabal2nix' package does.
This commit is contained in:
parent
8196130a1d
commit
5d02f0e854
|
@ -8,6 +8,7 @@ header "exporting $url (rev $rev) into $out"
|
|||
|
||||
$fetcher --builder --url "$url" --out "$out" --rev "$rev" \
|
||||
${leaveDotGit:+--leave-dotGit} \
|
||||
${deepClone:+--deepClone} \
|
||||
${fetchSubmodules:+--fetch-submodules}
|
||||
|
||||
stopNest
|
||||
|
|
|
@ -11,8 +11,8 @@
|
|||
else "";
|
||||
in "${if matched == null then base else builtins.head matched}${appendShort}";
|
||||
in
|
||||
{ url, rev ? "HEAD", md5 ? "", sha256 ? "", leaveDotGit ? false
|
||||
, fetchSubmodules ? true
|
||||
{ url, rev ? "HEAD", md5 ? "", sha256 ? "", leaveDotGit ? deepClone
|
||||
, fetchSubmodules ? true, deepClone ? false
|
||||
, name ? urlToName url rev
|
||||
}:
|
||||
|
||||
|
@ -39,6 +39,7 @@ in
|
|||
*/
|
||||
|
||||
assert md5 != "" || sha256 != "";
|
||||
assert deepClone -> leaveDotGit;
|
||||
|
||||
stdenv.mkDerivation {
|
||||
inherit name;
|
||||
|
@ -50,7 +51,7 @@ stdenv.mkDerivation {
|
|||
outputHashMode = "recursive";
|
||||
outputHash = if sha256 == "" then md5 else sha256;
|
||||
|
||||
inherit url rev leaveDotGit fetchSubmodules;
|
||||
inherit url rev leaveDotGit fetchSubmodules deepClone;
|
||||
|
||||
GIT_SSL_CAINFO = "${cacert}/etc/ca-bundle.crt";
|
||||
|
||||
|
@ -64,4 +65,3 @@ stdenv.mkDerivation {
|
|||
|
||||
preferLocalBuild = true;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue