Closed matthewi closed 10 years ago
I really appreciate that you spent the time on this. I think you absolutely had the right idea trying to get sh
out of the requirements. Unfortunately, I don't really see that happening with GitPython
, if it can't init a new repo. I think Dulwich
is definitely the way to go.
I am planning a new release very soon (hopefully tonight, depending on some pending bug fixes). As soon as that is out, I plan to start migrating to Dulwich
. I started playing around with it already, and I think it will be pretty straightforward.
First pass at refactoring code to use GitPython instead of Sh or other mechanism to call out to git binary. GitPython provides a pure Python implementation for manipulation git objects and allows use of git binary where available.
TODO: Multiple config_problems messages are generated when the repository is invalid.
I should add that for some operations (repository creation) GitPython still relies on an external binary. But core actions (adding, editing, removing files) operates without it. Another option that I just learned of is Dulwich (https://github.com/jelmer/dulwich). It appears to have no dependency on a git binary, even for repository creation.