While I really do enjoy the idea of using git2 for performance, I think a far more economical and ergonomic approach is to just be a thin shell wrapper around git-checkout.
So, we might have behavior (e.g. which matcher to use: -s for Sublime, etc.) that needs to get configured via Clap, otherwise all arguments should get passed through.
Here are the changes to adopt:
While I really do enjoy the idea of using
git2for performance, I think a far more economical and ergonomic approach is to just be a thin shell wrapper aroundgit-checkout.So, we might have behavior (e.g. which matcher to use:
-sfor Sublime, etc.) that needs to get configured via Clap, otherwise all arguments should get passed through.Here are the changes to adopt:
UseUse git2 for getting refsgit-for-each-ref(1)for retrieving refnames (completions, search space)git-checkout(1)for actually checking things out.--are for us, the others are forgit-checkout.