Open Blatoy opened 4 years ago
I don't see a reason why you would want Git as a required project dependency. What if users want to use a different VCS? What if they want to make a local plugin without using a remote git repo?
Additionally, Git is made to be used via command line (you shouldn't need an API for Git), so I don't see why we don't just spawn child processes and read stdout.
While nodegit is a pain, I still think it would be great if we could avoid having to run processes manually and parse result strings, maybe there is a module that does that? The idea behind using git there is to allow plugin developers to easily share and update their plugin. Adding other VCS sounds like a very very low priority. Loading plugins from the folder even if they are not using git sounds like a good idea though.
Yeah, out of scope for this issue / this early into the project.
Regarding Git: we could try simple-git. It has a CLI wrapper for common tasks (including pull and clone), while also providing a raw mode (where we can just run any Git command, such as for tracking how many commits behind we are). It also supports authentication, for private repositories.
I think we should find another module because of the 2 following reasons:
We decided to use this module in the first place because it does not rely on having git installed on the machine.