Open
Conversation
I've got tired of building static libgit2 and fighting with git2go and cgo. state.go is rewrote by cursor, tested with run-tests.sh and unit tests Co-authored-by: Cursor <support@cursor.sh>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
git2go is poorly maintained, It's basically impossible to use standard
go buildto build it now. It also needs cgo to link with libgit2, which brings dependencySo, I decided to re-implement this using go-git.
Cursor ported state.go (agent mode, so maybe with poor performance), and I did the rest manually (with "tabs" only).
It’s mostly passing unit tests and run-tests.sh, but there's a small issue with
mergeTest. The SHA1 hash doesn't match the hard-coded one in the test. But this implementation actually matches the officialgit subtreeresult and the original libgit implementation,