masterbranch follows the latest libgit2 release. The versioned branches indicate which libgit2 version they work against.
nextwhich tracks an unstable version), we need to build libgit2 as well. In order to build it, you need
pkg-configand a C compiler. You will also need the development packages for OpenSSL and LibSSH2 installed if you want libgit2 to support HTTPS and SSH respectively.
masterwhich tracks the latest release of libgit2, and versioned branches which indicate which version of libgit2 they work against. Install the development package on your system via your favourite package manager or from source and you can use a service like gopkg.in to use the appropriate version. For the libgit2 v0.22 case, you can use
to use a version of git2go which will work against libgit2 v0.22 and dynamically link to the library. You can use
to use the version which works against the latest release.
nextbranch follows libgit2's master branch, which means there is no stable API or ABI to link against. git2go can statically link against a vendored version of libgit2.
go get -d github.com/libgit2/git2goto download the code and go to your
$GOPATH/src/github.com/libgit2/git2godirectory. From there, we need to build the C code and put it into the resulting go binary.
will compile libgit2. Run
git checkout next git submodule update --init # get libgit2 make install
go installso that it's statically linked to the git2go package.
THREADSAFE.mdfor more information.
go testwill work as usual. For the
nextbranch, similarly to installing, running the tests requires linking against the local libgit2 library, so the Makefile provides a wrapper
Alternatively, if you want to pass arguments to
go test, you can use the script that sets it all up
which will run the specified arguments with the correct environment variables。
./script/with-static.sh go test -v