Description
Context
The project currently has a bunch of utilities for interacting with Git in nava/platform/util/git.py. These call the git
executable in a subprocess. This requires users have a particular version of git
available on their system to use the tool. We can relax that requirement, and possibly improve some performance, by switching to library for interactions with Git.
Although ultimately copier
still requires the git
executable at the moment, this tool may eventually have useful functionality that interacts with git outside of Copier. In addition to not having to re-invent a Python interface to Git operations.
Implementation
Probably with dulwich (https://github.com/jelmer/dulwich)
Possibly with pytgit2 (https://www.pygit2.org/index.html)
Copier has a similar open issue, though there's not much interest in making the switch there because (sensibly) if someone is using a Git template, they almost certainly have git
installed.