go-vcs is a library for manipulating and inspecting VCS repositories in Go. It currently supports Git and Mercurial (hg).
Note: the public API is experimental and subject to change until further notice.
For hg blame, you need to install hglib: pip install python-hglib.
go get -u sourcegraph.com/sourcegraph/go-vcs/vcs
The goal is to have all supported backends at feature parity, but until then, consult this table for implementation differences.
| Feature | git | gitcmd | hg | hgcmd |
|---|---|---|---|---|
| vcs.CommitsOptions.Path | ⬜ | ✅ | ⬜ | ⬜ |
| vcs.BranchesOptions.MergedInto | ⬜ | ✅ | ⬜ | ⬜ |
| vcs.BranchesOptions.IncludeCommit | ⬜ | ✅ | ⬜ | ⬜ |
| vcs.BranchesOptions.BehindAheadBranch | ⬜ | ✅ | ⬜ | ⬜ |
| vcs.Repository.Committers | ⬜ | ✅ | ⬜ | ⬜ |
| vcs.FileLister | ⬜ | ✅ | ⬜ | ⬜ |
| vcs.UpdateResult | ⬜ | ✅ | ⬜ | ⬜ |
Contributions that fill in the gaps are welcome!
You need to install and run the protobuf compiler before you can regenerate Go code after you change the vcs.proto file.
-
Install protoc, the protobuf compiler. Find more details in the protobuf README.
On OS X, you can install it with Homebrew by running:
brew install --devel protobufThen make sure the
protocbinary is in your$PATH. -
Install gogo/protobuf.
go get -u github.com/gogo/protobuf/... -
Install
gopathexec:go get -u sourcegraph.com/sourcegraph/gopathexec
go generate sourcegraph.com/sourcegraph/go-vcs/vcs/...
Run go test ./vcs/....
- Quinn Slack sqs@sourcegraph.com
See all contributors here.
