When we were working on Glide, a package manager that manages your vendor/
directory, we needed to work with varying version control systems. While trying to use the golang.org/x/tools/go/vcs
package we found it to be too tightly coupled to the go get
command. When we wanted to deviate from it’s features things got difficult.
Today we have the github.com/Masterminds/vcs
package that provides a common interface to varying version control systems. I’ve written up a quick intro if anyone is interested.