gvt

command module
v0.0.0-...-4899cb1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 25, 2018 License: MIT Imports: 20 Imported by: 0

README

gvt was a minimalistic Go vendoring tool made for the vendor/ folder (once known as the GO15VENDOREXPERIMENT).

It was based on gb-vendor by Dave Cheney.

Since Go 1.11, the go tool supports modules, a native solution to the dependency problem.

The go tool understands gvt manifest files, so you just have to run

GO111MODULE=on go mod init
GO111MODULE=on go mod vendor

to migrate and still populate the vendor/ folder for backwards compatibility.

Read more in the docs or on the wiki.

Modules support is experimental in 1.11, but it will probably serve you better than gvt would.

— So long, and thanks for all the fish!

Documentation

Overview

gvt, a simple go vendoring tool based on gb-vendor.

Usage:

gvt command [arguments]

The commands are:

fetch       fetch a remote dependency
restore     restore dependencies from manifest
update      update a local dependency
list        list dependencies one per line
delete      delete a local dependency

Use "gvt help [command]" for more information about a command.

Fetch a remote dependency

Usage:

gvt fetch [-branch branch] [-revision rev | -tag tag] [-precaire] [-no-recurse] [-t|-a] importpath

fetch vendors an upstream import path.

Recursive dependencies are fetched (at their master/tip/HEAD revision), unless they or their parent package are already present.

If a subpackage of a dependency being fetched is already present, it will be deleted.

The import path may include a url scheme. This may be useful when fetching dependencies from private repositories that cannot be probed.

Flags:

-t
	fetch also _test.go files and testdata.
-a
	fetch all files and subfolders, ignoring ONLY .git, .hg and .bzr.
-branch branch
	fetch from the named branch. Will also be used by gvt update.
	If not supplied the default upstream branch will be used.
-no-recurse
	do not fetch recursively.
-tag tag
	fetch the specified tag.
-revision rev
	fetch the specific revision from the branch or repository.
	If no revision supplied, the latest available will be fetched.
-precaire
	allow the use of insecure protocols.

Restore dependencies from manifest

Usage:

gvt restore [-precaire] [-connections N]

restore fetches the dependencies listed in the manifest.

It's meant for workflows that don't include checking in to VCS the vendored source, for example if .gitignore includes lines like

vendor/**
!vendor/manifest

Note that such a setup requires "gvt restore" to build the source, relies on the availability of the dependencies repositories and breaks "go get".

Flags:

-precaire
	allow the use of insecure protocols.
-connections
	count of parallel download connections.

Update a local dependency

Usage:

gvt update [ -all | importpath ]

update replaces the source with the latest available from the head of the fetched branch.

Updating from one copy of a dependency to another is ONLY possible when the dependency was fetched by branch, without using -tag or -revision. It will be updated to the HEAD of that branch, switching branches is not supported.

To update across branches, or from one tag/revision to another, you must first use delete to remove the dependency, then fetch [ -tag | -revision | -branch ] to replace it.

Flags:

-all
	update all dependencies in the manifest.
-precaire
	allow the use of insecure protocols.

List dependencies one per line

Usage:

gvt list [-f format]

list formats the contents of the manifest file.

Flags:

-f
	controls the template used for printing each manifest entry. If not supplied
	the default value is "{{.Importpath}}\t{{.Repository}}{{.Path}}\t{{.Branch}}\t{{.Revision}}"

Delete a local dependency

Usage:

gvt delete [-all] importpath

delete removes a dependency from the vendor directory and the manifest

Flags:

-all
	remove all dependencies

Directories

Path Synopsis
package fileutils provides utililty methods to copy and move files and directories.
package fileutils provides utililty methods to copy and move files and directories.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL