This library was causing numerous issues related to git operations. The
straw that broke the camel's back is that it does not do automatic
garbage collection (`git gc --auto`). So a user's repo directory
continues to grow in size.
The replacement is CliWrap, which is just a simple wrapper library that
allows easy execution of shell commands. Specifically, `git` commands.
BREAKING CHANGE: This change now requires the `git` executable to be
installed by the user if run on a host system. The git executable will
be provided automatically for the docker image.
Reason: Exception would be thrown when no config files are found when
invoking the various `--list` arguments. No configuration should not
prevent these from working.
- Get rid of `IServiceLocatorProxy`
- Get rid of `ICompositionRoot`
In addition, all unit tests avoid using `BaseCommand` directly, as it
does its own composition root setup and overrides the IntegrationFixture
test setup.
The introduction of lifetime scopes inside of configuration processing
in the Command classes introduced issues with the way resolution
overrides happened especially with integration test fixtures.
Simplify the factory pattern so that it creates settings more directly
instead of using a silly setter method.
Also implemented `IntegrationFixture` for easier integration testing.