Skip to content
/ vcs Public
forked from Masterminds/vcs

VCS Repo management through a common interface in Go

License

Notifications You must be signed in to change notification settings

wpecker/vcs

This branch is 2 commits ahead of, 23 commits behind Masterminds/vcs:master.

Folders and files

NameName
Last commit message
Last commit date

Latest commit

May 18, 2019
e60a776 · May 18, 2019
Jul 24, 2015
Feb 26, 2019
Feb 27, 2019
Aug 11, 2015
Jan 5, 2017
Jan 17, 2017
Jan 11, 2017
Apr 25, 2019
Jan 24, 2017
Jul 16, 2017
Apr 13, 2016
May 18, 2019
Mar 5, 2018
May 4, 2016
Apr 25, 2019
Aug 19, 2018
Apr 25, 2019
Jan 13, 2017
Apr 25, 2019
Jan 13, 2017
Jan 13, 2017
Apr 25, 2019
Apr 25, 2019

Repository files navigation

VCS Repository Management for Go

Manage repos in varying version control systems with ease through a common interface.

Build Status GoDoc Go Report Card Build status

Quick Usage

Quick usage:

remote := "https://github.com/Masterminds/vcs"
local, _ := ioutil.TempDir("", "go-vcs")
repo, err := NewRepo(remote, local)

In this case NewRepo will detect the VCS is Git and return a GitRepo. All of the repos implement the Repo interface with a common set of features between them.

Supported VCS

Git, SVN, Bazaar (Bzr), and Mercurial (Hg) are currently supported. They each have their own type (e.g., GitRepo) that follow a simple naming pattern. Each type implements the Repo interface and has a constructor (e.g., NewGitRepo). The constructors have the same signature as NewRepo.

Features

  • Clone or checkout a repository depending on the version control system.
  • Pull updates to a repository.
  • Get the currently checked out commit id.
  • Checkout a commit id, branch, or tag (depending on the availability in the VCS).
  • Get a list of tags and branches in the VCS.
  • Check if a string value is a valid reference within the VCS.
  • More...

For more details see the documentation.

Motivation

The package golang.org/x/tools/go/vcs provides some valuable functionality for working with packages in repositories in varying source control management systems. That package, while useful and well tested, is designed with a specific purpose in mind. Our uses went beyond the scope of that package. To implement our scope we built a package that went beyond the functionality and scope of golang.org/x/tools/go/vcs.

About

VCS Repo management through a common interface in Go

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Go 99.2%
  • Makefile 0.8%