-
Notifications
You must be signed in to change notification settings - Fork 899
Expose libgit2 reference database backend for managed code refdb impls. #401
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
Conversation
Doh. Travis doesn't like me. 😿 |
Ooooops. Output on my box:
Output on Travis:
|
Ok. Travis and I are BFF again 😉 @ethomson: Ready for your review, Sir! |
I'm really looking forward to having this RefDB backend in libgit2sharp, but I have a little objection: The libgit2 version of the backend explicitly passes the old_oid / old_target in the write mechanism. This is crucial to ensure that the write only occurs if the previous value is unchanged (optimistic concurrency). Without these parameters I find it difficult to support generic key/value backends (s3, azure storage, etc) for refdb. Researching a bit further, since this has been idle for a year, I guess the libgit2 interface may have changed in the meanwhile. Can we update this to reflect the change? |
I'll give it a try! |
Cool! You may be willing to give a look at the current filesystem based implementation for inspiration. |
Is this going to get merged? |
@alcheByte Not in its current state. See the discussion above 😉 |
@nulltoken sorry, I misread the 'All is well' notification at the end of the thread ;) I created a fork and resolved the merge conflicts, although I may have botched the handling of the NotOwned/ReferenceSafeHandle. I'm getting a AccessViolationException on the call to NativeMethods.git_repository_free(repo). If I remove the using clause for the Repository instance the exception goes away. I'm a little confused though. Is the plugged in refdb backend supposed to replace the file system backend or be in addition to it? The .git folder is being created... |
@alcheByte Neat!
Could you please create a Pull Request from your fork, it will be easier for us to help you? Just a quick note: I would strongly advise you to create a dedicated branch, rather than working directly on |
Done, let me know if I botched it, I'm a git/GitHub noob :) So is the plugged in refdb supposed to be in lieu of the fs backend? |
@alcheByte I've taken a quick look. I think the issue you're encountering is related to the fact that the |
Hmmm. Let's move this over to #797 |
Follow up of #392