Fixes #3 (uses git worktree instead of a home-brew checkout mechanism). Getting this to work with submodules involves a pretty large pile of hacks, so I need to do some compatibility testing before actually publishing this. It definitely works without submodules on lots of historical git versions, and with submodules with git version 2.21.0 (Apple Git-122.2).
Switching to a mechanism that just uses git commands under the hood also fixes #4
Using git worktrees also fixes #2.
I'm expecting that this change could result in idiosyncrasies related to people's git configs, in which case, messing with some environment variables / using even more explicit command line switches could help.
There are lots of new tests in this PR. I finally feel like I have a handle on testing in Golang. There are some really scary / terrible integration tests which work great on my machine but not (yet) on CI. Getting these up and running is probably the next task.
Alright, there's a lot going on in this PR.
git worktree
instead of a home-brew checkout mechanism). Getting this to work with submodules involves a pretty large pile of hacks, so I need to do some compatibility testing before actually publishing this. It definitely works without submodules on lots of historical git versions, and with submodules withgit version 2.21.0 (Apple Git-122.2)
.I'm expecting that this change could result in idiosyncrasies related to people's git configs, in which case, messing with some environment variables / using even more explicit command line switches could help.
There are lots of new tests in this PR. I finally feel like I have a handle on testing in Golang. There are some really scary / terrible integration tests which work great on my machine but not (yet) on CI. Getting these up and running is probably the next task.
Also: