package vcs
import "cmd/go/internal/vcs"
Index ¶
- Variables
- type Cmd
- func FromDir(dir, srcRoot string, allowNesting bool) (repoDir string, vcsCmd *Cmd, err error)
- func (v *Cmd) Create(dir, repo string) error
- func (v *Cmd) Download(dir string) error
- func (v *Cmd) IsSecure(repo string) bool
- func (v *Cmd) Ping(scheme, repo string) error
- func (v *Cmd) String() string
- func (v *Cmd) TagSync(dir, tag string) error
- func (v *Cmd) Tags(dir string) ([]string, error)
- type ImportMismatchError
- type ModuleMode
- type RepoRoot
- type Status
Variables ¶
var ( // VCSTestRepoURL is the URL of the HTTP server that serves the repos for // vcs-test.golang.org. // // In tests, this is set to the URL of an httptest.Server hosting a // cmd/go/internal/vcweb.Server. VCSTestRepoURL string // VCSTestHosts is the set of hosts supported by the vcs-test server. VCSTestHosts []string // VCSTestIsLocalHost reports whether the given URL refers to a local // (loopback) host, such as "localhost" or "127.0.0.1:8080". VCSTestIsLocalHost func(*urlpkg.URL) bool )
Types ¶
type Cmd ¶
type Cmd struct { Name string Cmd string // name of binary to invoke command Env []string // any environment values to set/override RootNames []rootName // filename and mode indicating the root of a checkout directory 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) Status func(v *Cmd, rootDir string) (Status, error) }
A Cmd describes how to use a version control system like Mercurial, Git, or Subversion.
func FromDir ¶
FromDir inspects dir and its parents to determine the version control system and code repository to use. If no repository is found, FromDir returns an error equivalent to os.ErrNotExist.
func (*Cmd) Create ¶
Create creates a new copy of repo in dir. The parent of dir must exist; dir must not.
func (*Cmd) Download ¶
Download downloads any new changes for the repo in dir.
func (*Cmd) IsSecure ¶
func (*Cmd) Ping ¶
Ping pings to determine scheme to use.
func (*Cmd) String ¶
func (*Cmd) TagSync ¶
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 ¶
Tags returns the list of available tags for the repo in dir.
type ImportMismatchError ¶
type ImportMismatchError struct {
// contains filtered or unexported fields
}
An 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.
type Status ¶
type Status struct { Revision string // Optional. CommitTime time.Time // Optional. Uncommitted bool // Required. }
Status is the current state of a local repository.
Source Files ¶
- Version
- v1.24.0 (latest)
- Published
- Feb 10, 2025
- Platform
- linux/amd64
- Imports
- 25 packages
- Last checked
- 23 minutes ago –
Tools for package owners.