diff options
author | Eelco Dolstra <edolstra@gmail.com> | 2018-11-20T19·59+0100 |
---|---|---|
committer | Eelco Dolstra <edolstra@gmail.com> | 2018-11-20T19·59+0100 |
commit | 4aee93d5ce6cf77e314e93074b9da1dcff8979e9 (patch) | |
tree | 871f2118ef0754f0f608eda3b4febedca439c2fb /src | |
parent | 3f4de91d80da01f5612d839e610b113b8d159065 (diff) |
fetchGit: Drop unnecessary localRef
Diffstat (limited to 'src')
-rw-r--r-- | src/libexpr/primops/fetchGit.cc | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/src/libexpr/primops/fetchGit.cc b/src/libexpr/primops/fetchGit.cc index 5d6249e565de..b46d2f258265 100644 --- a/src/libexpr/primops/fetchGit.cc +++ b/src/libexpr/primops/fetchGit.cc @@ -85,6 +85,8 @@ GitInfo exportGit(ref<Store> store, const std::string & uri, if (rev != "" && !std::regex_match(rev, revRegex)) throw Error("invalid Git revision '%s'", rev); + deletePath(getCacheDir() + "/nix/git"); + Path cacheDir = getCacheDir() + "/nix/gitv2/" + hashString(htSHA256, uri).to_string(Base32, false); if (!pathExists(cacheDir)) { @@ -92,9 +94,7 @@ GitInfo exportGit(ref<Store> store, const std::string & uri, runProgram("git", true, { "init", "--bare", cacheDir }); } - std::string localRef = hashString(htSHA256, fmt("%s-%s", uri, *ref)).to_string(Base32, false); - - Path localRefFile = cacheDir + "/refs/heads/" + localRef; + Path localRefFile = cacheDir + "/refs/heads/" + *ref; bool doFetch; time_t now = time(0); @@ -124,7 +124,7 @@ GitInfo exportGit(ref<Store> store, const std::string & uri, // FIXME: git stderr messes up our progress indicator, so // we're using --quiet for now. Should process its stderr. - runProgram("git", true, { "-C", cacheDir, "fetch", "--quiet", "--force", "--", uri, *ref + ":" + localRef }); + runProgram("git", true, { "-C", cacheDir, "fetch", "--quiet", "--force", "--", uri, fmt("%s:%s", *ref, *ref) }); struct timeval times[2]; times[0].tv_sec = now; |