Submodule.open() fix, URL write support#513
Closed
pks-t wants to merge 3 commits intolibgit2:masterfrom
pks-t:submodule_additions
Closed
Submodule.open() fix, URL write support#513pks-t wants to merge 3 commits intolibgit2:masterfrom pks-t:submodule_additions
pks-t wants to merge 3 commits intolibgit2:masterfrom
pks-t:submodule_additions
Conversation
The submodule type has been implemented as a C type. When opening a submodule's repository this leads to the bug that instead of an actual pygit2.Repository being instantiated we only create an object of the C Repository type. As this is not trivially fixed within the C code, reimplement the submodule type as a Python interface with CFFI. As submodules provide no functionality that is usually accessed repeatedly the code paths should not prove performance critical. In addition, maintainability is improved by this reimplementation.
Member
|
Hello, I could reproduce the errors reported by travis locally. Then tested just the first patch, tests pass for Python 2.7 but don't for Python 3 |
Member
Author
|
That at least explains why they fail for the Py3 configs. I'll try to fix them later, probably this evening. |
Member
Author
|
Ah, I get what's happening here. The build is tripping over an error in libgit2 which I've already been fixing upstream. As we're not using the newest build the error is obviously still happening. I'll split up the pull request, as the type-fix is applicable without my libgit2 fixes. |
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.
Well. As has been initially proposed by @jdavid this PR rewrites the submodule feature I've been implementing in Python with CFFI. Reason has been a problem that I overlooked with the previous implementation, where the repository returned by submodule.open() was not a pygit2.Submodule but of the C SubmoduleType, thus missing some properties/methods. As I found no easy way to properly instantiate the pygit2.Submodule type instead of the C type from C code I just reimplemented that in Python. If there is any obvious way of doing it I may as well do that, if requested.
Some additional functions have been implemented, as well, thus providing URL write support for submodules, their repos and gitmodule entries.