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
Only interpret and make accessible all values and figure out how to bridge different formats in a single implementation ideally.
Reading
V3 reading + V4 reading with multi-threading
read extensions
needed for multi-threading
TREE
mandatory link and sdir
remaining optional extensions
use bitflags instead of u32 for type safety
test for long paths and extended flags
publish v 0.1 of index and bitmap crates
improve performance - there seems to be a bottleneck when reading large indices, reading a 53MB file takes 2s!
evaluate using std::thread::scope() instead of statically scoped threads, which should make it easier (needs Rust 1.63 MVP)
Instantiation
verification/warm up
visualize/print index content
implement verification first (to double check what we produce from a tree)
handle verification on linked indices
index from tree
it looks like a basic tree traversal to create entries, maybe it's smart by creating them sorted right way.
git can actually traverse multiple trees at the same time, maybe taking advantage of them being sorted. It seems to unpack the same entry on each level for comparison.
it inserts without special knowledge of tree traversal, and typically does a binary search unless it naturally inserts past the end
It will invalidate the cache tree and update the untracked cache.
It checks every path and rejects .git (on macos with case-insensitivity, should be a configuration flag). Handles backslashes in paths, too, on windows, rejecting them.
'.git' is always 'outlawed' without case checking, everywhere.
Only interpret and make accessible all values and figure out how to bridge different formats in a single implementation ideally.
Reading
linkandsdirstd::thread::scope()instead of statically scoped threads, which should make it easier (needs Rust 1.63 MVP)Instantiation
gitcan actually traverse multiple trees at the same time, maybe taking advantage of them being sorted. It seems to unpack the same entry on each level for comparison..git(on macos with case-insensitivity, should be a configuration flag). Handles backslashes in paths, too, on windows, rejecting them.Writing
Definitely round-trip tests with what we are reading.
.gitnamed entriesTREEextension can be used to accelerate the tree generation.CE_REMOVEDflags](https://github.com/git/git/blob/master/read-cache.c#L2894:L2894Plumbing
Research
notifybased implementation, avoiding thewatchmantool.