mirror of
https://github.com/NixOS/nix.git
synced 2025-12-22 17:01:08 +01:00
libfetchers: Bump tarball-cache version to v2
Unfortunately previous tarball caches had loose objects written to them and subsequent switch to thin packfiles. This results in possibly broken thin packfiles when the loose objects backend is disabled. Thin packfiles do not necessarily contain the whole closure of objects. When packfilesOnly is true we end up with an inconsistent state where a tree lives in a packfiles which refers to a blob in the loose objects backend. In the future we might want to nuke old cache directories and repack the tarball cache.
This commit is contained in:
parent
b398c14045
commit
0ffe83aa14
1 changed files with 5 additions and 1 deletions
|
|
@ -1430,7 +1430,11 @@ namespace fetchers {
|
|||
|
||||
ref<GitRepo> Settings::getTarballCache() const
|
||||
{
|
||||
static auto repoDir = std::filesystem::path(getCacheDir()) / "tarball-cache";
|
||||
/* v1: Had either only loose objects or thin packfiles referring to loose objects
|
||||
* v2: Must have only packfiles with no loose objects. Should get repacked periodically
|
||||
* for optimal packfiles.
|
||||
*/
|
||||
static auto repoDir = std::filesystem::path(getCacheDir()) / "tarball-cache-v2";
|
||||
return GitRepo::openRepo(repoDir, {.create = true, .bare = true, .packfilesOnly = true});
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue