vcs

package standard library
go1.17.6 Latest Latest
Warning

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

Go to latest
Published: Jan 6, 2022 License: BSD-3-Clause Imports: 22 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func CheckNested

func CheckNested(vcs *Cmd, dir, srcRoot string) error

CheckNested checks for an incorrectly-nested VCS-inside-VCS situation for dir, checking parents up until srcRoot.

Types

type Cmd

type Cmd struct {
	Name string
	Cmd  string // name of binary to invoke command

	CreateCmd   []string // commands to download a fresh copy of a repository
	DownloadCmd []string // commands to download updates into an existing repository

	TagCmd         []tagCmd // commands to list tags
	TagLookupCmd   []tagCmd // commands to lookup tags before running tagSyncCmd
	TagSyncCmd     []string // commands to sync to specific tag
	TagSyncDefault []string // commands to sync to default tag

	Scheme  []string
	PingCmd string

	RemoteRepo  func(v *Cmd, rootDir string) (remoteRepo string, err error)
	ResolveRepo func(v *Cmd, rootDir, remoteRepo string) (realRepo string, err error)
}

A vcsCmd describes how to use a version control system like Mercurial, Git, or Subversion.

func FromDir

func FromDir(dir, srcRoot string) (vcs *Cmd, root string, err error)

FromDir inspects dir and its parents to determine the version control system and code repository to use. On return, root is the import path corresponding to the root of the repository.

func (*Cmd) Create

func (v *Cmd) Create(dir, repo string) error

Create creates a new copy of repo in dir. The parent of dir must exist; dir must not.

func (*Cmd) Download

func (v *Cmd) Download(dir string) error

Download downloads any new changes for the repo in dir.

func (*Cmd) IsSecure

func (v *Cmd) IsSecure(repo string) bool

func (*Cmd) Ping

func (v *Cmd) Ping(scheme, repo string) error

Ping pings to determine scheme to use.

func (*Cmd) String

func (v *Cmd) String() string

func (*Cmd) TagSync

func (v *Cmd) TagSync(dir, tag string) error

tagSync syncs the repo in dir to the named tag, which either is a tag returned by tags or is v.tagDefault.

func (*Cmd) Tags

func (v *Cmd) Tags(dir string) ([]string, error)

Tags returns the list of available tags for the repo in dir.

type ImportMismatchError

type ImportMismatchError struct {
	// contains filtered or unexported fields
}

A ImportMismatchError is returned where metaImport/s are present but none match our import path.

func (ImportMismatchError) Error

func (m ImportMismatchError) Error() string

type ModuleMode

type ModuleMode int

ModuleMode specifies whether to prefer modules when looking up code sources.

const (
	IgnoreMod ModuleMode = iota
	PreferMod
)

type RepoRoot

type RepoRoot struct {
	Repo     string // repository URL, including scheme
	Root     string // import path corresponding to root of repo
	IsCustom bool   // defined by served <meta> tags (as opposed to hard-coded pattern)
	VCS      *Cmd
}

RepoRoot describes the repository root for a tree of source code.

func RepoRootForImportPath

func RepoRootForImportPath(importPath string, mod ModuleMode, security web.SecurityMode) (*RepoRoot, error)

RepoRootForImportPath analyzes importPath to determine the version control system, and code repository to use.

Jump to

Keyboard shortcuts

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