Programming language: Go
License: GNU General Public License v3.0 or later
Tags: Version Control    

go-vcs alternatives and similar packages

Based on the "Version Control" category.
Alternatively, view go-vcs alternatives based on common mentions on social networks and blogs.

Do you think we are missing an alternative of go-vcs or a related project?

Add another 'Version Control' Package


go-vcs - manipulate and inspect VCS repositories

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.

Build Status GoDoc

Resolving dependencies

For hg blame, you need to install hglib: pip install python-hglib.


go get -u sourcegraph.com/sourcegraph/go-vcs/vcs

Implementation differences

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 :white_large_square: :white_check_mark: :white_large_square: :white_large_square:
vcs.BranchesOptions.MergedInto :white_large_square: :white_check_mark: :white_large_square: :white_large_square:
vcs.BranchesOptions.IncludeCommit :white_large_square: :white_check_mark: :white_large_square: :white_large_square:
vcs.BranchesOptions.BehindAheadBranch :white_large_square: :white_check_mark: :white_large_square: :white_large_square:
vcs.Repository.Committers :white_large_square: :white_check_mark: :white_large_square: :white_large_square:
vcs.FileLister :white_large_square: :white_check_mark: :white_large_square: :white_large_square:
vcs.UpdateResult :white_large_square: :white_check_mark: :white_large_square: :white_large_square:

Contributions that fill in the gaps are welcome!


First-time installation of protobuf and other codegen tools

You need to install and run the protobuf compiler before you can regenerate Go code after you change the vcs.proto file.

  1. 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 protobuf

    Then make sure the protoc binary is in your $PATH.

  2. Install gogo/protobuf.

    go get -u github.com/gogo/protobuf/...
  3. Install gopathexec:

    go get -u sourcegraph.com/sourcegraph/gopathexec

Regenerating Go code after changing vcs.proto

go generate sourcegraph.com/sourcegraph/go-vcs/vcs/...

Running tests

Run go test ./vcs/....


See all contributors here.