More performance improvements to tree-sitter generate. The master branch is now ~3-5x faster and uses 3-5x less memory than 0.26. More improvements to come!
2
42
Replying to @neogoose_btw @HSVSphere
In every call to StatusOptions::new, you also use exclude_submodules(true). That means any changes inside submodules (chromium has 263 on its main branch currently) won't get picked up by git2. Your fuzz tests don't catch this because they also tell git2 to ignore submodules in the same way. I threw together a quick test with fff-core as a dependency and it reports modified files inside submodules as clean.
1
35
interprocess uses named pipes on windows which means you can’t set timeouts for reads. How am I supposed to thrive in these conditions
1
98
I need to stop trying to work on top of existing mechanisms that doesn’t have a well established protocol. The way git handles lock file acquisition is utterly insane and invites race conditions from external tooling.
> acquire index.lock
> gather information about the state of the repo
> write updated index to index.lock
> delete index
> rename index.lock to index (!!!!)
> do some other operation (create rebase-merge directory if a rebase command was issued)
> hope nobody else touches index during this time (?????)
> try to reacquire index.lock
Why wouldn’t you just hold the lock file for the entire operation? I just want ‘git status’ to not take 30 seconds dawg
44













