You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I am asking because I have been talking to the rest of the Nix team about making a Merkle alternative / replacement to NAR, and it would be nice to do this avoiding NIH, especially if it can allow us to reuse a bunch of high-quality FUSE and remote-execution network protocol work :),
We already export git-hashing on an experimental basis, but it is is not quite fit-for-purpose. (The main issue is that Nix store object can just be a single symlink, but without a root directory, Git cannot distinguish non-executable files, executable-files, and symlinks.) And of course, using Blake for speed, which matters far more with binary artifacts than source code, is quite attractive.
The text was updated successfully, but these errors were encountered:
More than an interest, it was implemented if you search the code. We've migrated internally now and also passing through Sapling/EdenFS, and IIRC it's configurable. We'd have to ask the Mononoke / EdenFS folk to answer how that's done on their side though.
@alexlian thanks! I made the silly mistake of trying to find my code on my phone, there's a bit too much for that :).
Is your answer implying that Buck2 usually asks EdenFS to hash the director on its behalf? Should I therefore go there to figure out what the exact hashing format is?
Both Buck2 and Bazel have the ability to compute the merkle tree manually, or short circuit to an xattr with a pre-computed digest provided by the underlying FUSE. I think in Buck2 case, both Eden and Buck2 uses blake3 to help with computing digest of larger blobs.
I see
I am asking because I have been talking to the rest of the Nix team about making a Merkle alternative / replacement to NAR, and it would be nice to do this avoiding NIH, especially if it can allow us to reuse a bunch of high-quality FUSE and remote-execution network protocol work :),
We already export git-hashing on an experimental basis, but it is is not quite fit-for-purpose. (The main issue is that Nix store object can just be a single symlink, but without a root directory, Git cannot distinguish non-executable files, executable-files, and symlinks.) And of course, using Blake for speed, which matters far more with binary artifacts than source code, is quite attractive.
The text was updated successfully, but these errors were encountered: