aboutsummaryrefslogtreecommitdiff
path: root/src/libexpr/primops
diff options
context:
space:
mode:
authorEelco Dolstra <edolstra@gmail.com>2018-11-20 20:41:19 +0100
committerEelco Dolstra <edolstra@gmail.com>2018-11-20 20:41:19 +0100
commit3f4de91d80da01f5612d839e610b113b8d159065 (patch)
tree19c585ea568c39eca25bc3f506ade99b6090668e /src/libexpr/primops
parentebeea068d52abd02adbbfed3a0f7555300d6b048 (diff)
parent02098d2073e2f7c06b6d05c6749ae2b76b7f57d5 (diff)
Merge branch 'better-git-cache' of https://github.com/graham-at-target/nix
Diffstat (limited to 'src/libexpr/primops')
-rw-r--r--src/libexpr/primops/fetchGit.cc4
1 files changed, 3 insertions, 1 deletions
diff --git a/src/libexpr/primops/fetchGit.cc b/src/libexpr/primops/fetchGit.cc
index 0c6539959..5d6249e56 100644
--- a/src/libexpr/primops/fetchGit.cc
+++ b/src/libexpr/primops/fetchGit.cc
@@ -3,6 +3,7 @@
#include "download.hh"
#include "store-api.hh"
#include "pathlocks.hh"
+#include "hash.hh"
#include <sys/time.h>
@@ -84,9 +85,10 @@ GitInfo exportGit(ref<Store> store, const std::string & uri,
if (rev != "" && !std::regex_match(rev, revRegex))
throw Error("invalid Git revision '%s'", rev);
- Path cacheDir = getCacheDir() + "/nix/git";
+ Path cacheDir = getCacheDir() + "/nix/gitv2/" + hashString(htSHA256, uri).to_string(Base32, false);
if (!pathExists(cacheDir)) {
+ createDirs(dirOf(cacheDir));
runProgram("git", true, { "init", "--bare", cacheDir });
}