-
-
Notifications
You must be signed in to change notification settings - Fork 676
Open
Labels
Description
Our current bug #2809 (our broken pre-push hook support) led me down the rabbit hole of "what else is required to properly support git-lfs in gitui.
We are looking at basically three things:
- properly run pre-push hook (thats Pushing throws pre-push hook error on repository with LFS. #2809)
- hook into filter logic and run them on all checkout-like operations (smudge)
- hook into filter logic and run them on all worktree->index operations (clean)
Now libgit2 exposes an API to hook into filters but git2-rs does not expose this right now (open issue).
Since our end goal is to be libgit2 independent I call out whats needed to do this all using gitoxide:
- we need to migrate all our git-checkout locations to gitoxide
- migrate all worktree->index operations to gitoxide
use gitoxide machinery to hook into filters(turns out gitoxide will already invoke filters for us)forward filter logic via shellout (git-lfs clean,git-lfs smudgeorgit-lfs filter-process)- finally we support basic git-lfs
- add support for more file locking relevant lfs features via hooks:
post-checkout,post-merge,post-commit
This issue is more of an epic, I would love to see contributions to take on individual steps as separate PRs.
cc @Byron @cruessler correct me if I am wrong but from the gitoxide side all this is ready to be used or am I wrong?
Further reading: #1089
argenkiwi and 5310