| 1 Jul 2025 |
roberth | True, but we shouldn't be copying those store paths in the first place | 11:43:50 |
roberth | And if we do, they should match the non-Nix layouts | 11:44:02 |
roberth | Currently there's not much of a connection between libfetchers fetchers and the store layer, so putting it in the store is more complicated than putting it in .git/annex, fwiw | 11:44:27 |
magic_rb | Wait so we just tell nix to include .git/annex during eval? | 11:44:57 |
roberth | (copying to the store only happens at the end of fetchTree and not within the individual source accessors) | 11:45:02 |
magic_rb | Okay im lost lol | 11:45:17 |
magic_rb | We do have to copy for a build still no? | 11:45:50 |
roberth | So we have the sources accessor objects that behave like very simple virtual file systems, and we plan to use them directly instead of copying everything to the store all the time | 11:46:11 |
roberth | They can implement operations like readDirectory or readFile as they please, so the git accessor with annex enabled could add a .git and .git/annex to what it returns, and then do whatever is necessary to return the contents of that | 11:47:31 |
roberth | Yes, but only the things you bring into the derivation. You could use a source filter to avoid some unneeded stuff. Currently that's all moot because fetchTree copies everything it could return, but we'll change that, and make source filtering a solution for this problem. | 11:49:19 |
magic_rb | In reply to @roberthensing:matrix.org Yes, but only the things you bring into the derivation. You could use a source filter to avoid some unneeded stuff. Currently that's all moot because fetchTree copies everything it could return, but we'll change that, and make source filtering a solution for this problem. Right which is why im saying that i think each annexed file should become its own store path, so that youre not copying about 40GB for each build | 11:50:14 |
roberth | If it's not clear which is better, we could make this behavior configurable. Making the right parts of .git/annex available to derivations would be a pain. | 11:50:38 |
magic_rb | Say im working on a game, then to nix build it, i need essentially all the annexed files, so the for every build im copying all the assets which can be arbitrarily huge | 11:51:13 |
roberth | That's designing for the current Nix, not the Nix we're promising, fwiw | 11:51:33 |