-
Notifications
You must be signed in to change notification settings - Fork 19
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Use standard git instead of LibGit2Sharp #509
Comments
I haven't seen anyone report this specific error message before. Does it always fail for you? Or is it a random unpredictable error that only happens occasionally? The main reason I haven't leaned on normal git is that that would be another installation step for users, which are already often overwhelmed by the SDK installation requirements. Libgit2sharp was a way to do git work without requiring users install another thing |
Actually I have already figured out the root cause. I have multiple network interfaces on my computer, one for the normal internet and others are used for lan, such as wireguards etc. By inspecting the packet capture results generated by wireshark, Libgit2sharp try to broadcast the requests on all interfaces without follow the routing table, and as you can imagine, those lan interfaces will reject the request. So the behavior in theory depends on which interface reacts first. If the internet interface reacts first, it will be fine, otherwise Libgit2sharp will retry on the lan interfaces and quickly reach the retry limit. |
I also tried other solutions, like configuring a proxy to git so Libgit2sharp can follow it as proposed in Libgit2sharp#PR 2065. But then I meet another behavior where Libgit2sharp doesn't follow the standard git, as it didn't support socks5 proxies, which already have a long history in standard git. Here is the error message:
|
As for how to use standard git without introduing another installation step, including a copy of git may be a solution? I'm not sure on these things since git is already a must have tool for me. I also have another idea. I think the current working procedure of synthesis is a little weird, as it clones all the patchers everytime it lanches. Maybe a persistent local repo can help a lot, so users only need to update the patchers if necessary, and synthesis can be used offline. I'm willing to offer help if you think its a reasonable idea. |
Interesting! Thanks for the outline of your issues
Yeah, Libgit2sharp is definitely an odd library. Potentially something to consider. Another idea is to expose the flexibility of using libgit2sharp OR leaning on git commands. That way, a user like yourself could opt to use installed git and bypass libgit2sharp. Or, maybe an On that note, most of the git calls flow through this library interface, so would/could just upgrade that library to have alternatives that called git commands instead of libgit2sharp. From there, would be an easy DI swapout to one implementation or the other
It shouldn't be. It clones each patcher into What did you see that suggested it was cloning every time? Maybe something is up |
Recently I meet the following errors frequently:
Restart Synthesis usually helps but sometimes also fail too. I'm a developer myself so I use git frequently in my daily life, and never meet similar problems. I guess it can be some differences between standard git and LibGit2Sharp
The text was updated successfully, but these errors were encountered: