Documentation
¶
Overview ¶
Package config contains the abstraction of multiple config files
Index ¶
- Constants
- Variables
- func MatchAny(l []RefSpec, n plumbing.ReferenceName) bool
- type Branch
- type Config
- type ConfigStorer
- type Modules
- type RefSpec
- func (s RefSpec) Dst(n plumbing.ReferenceName) plumbing.ReferenceName
- func (s RefSpec) IsDelete() bool
- func (s RefSpec) IsForceUpdate() bool
- func (s RefSpec) IsWildcard() bool
- func (s RefSpec) Match(n plumbing.ReferenceName) bool
- func (s RefSpec) Src() string
- func (s RefSpec) String() string
- func (s RefSpec) Validate() error
- type RemoteConfig
- type Submodule
Constants ¶
const ( // DefaultFetchRefSpec is the default refspec used for fetch. DefaultFetchRefSpec = "+refs/heads/*:refs/remotes/%s/*" // DefaultPushRefSpec is the default refspec used for push. DefaultPushRefSpec = "refs/heads/*:refs/heads/*" )
const ( // DefaultPackWindow holds the number of previous objects used to // generate deltas. The value 10 is the same used by git command. DefaultPackWindow = uint(10) )
Variables ¶
var ( ErrInvalid = errors.New("config invalid key in remote or branch") ErrRemoteConfigNotFound = errors.New("remote config not found") ErrRemoteConfigEmptyURL = errors.New("remote config: empty URL") ErrRemoteConfigEmptyName = errors.New("remote config: empty name") )
Functions ¶
func MatchAny ¶
func MatchAny(l []RefSpec, n plumbing.ReferenceName) bool
MatchAny returns true if any of the RefSpec match with the given ReferenceName.
Types ¶
type Branch ¶
type Branch struct {
// Name of branch
Name string
// Remote name of remote to track
Remote string
// Merge is the local refspec for the branch
Merge plumbing.ReferenceName
// contains filtered or unexported fields
}
Branch contains information on the local branches and which remote to track
type Config ¶
type Config struct {
Core struct {
// IsBare if true this repository is assumed to be bare and has no
// working directory associated with it.
IsBare bool
// Worktree is the path to the root of the working tree.
Worktree string
}
Pack struct {
// Window controls the size of the sliding window for delta
// compression. The default is 10. A value of 0 turns off
// delta compression entirely.
Window uint
}
// Remotes list of repository remotes, the key of the map is the name
// of the remote, should equal to RemoteConfig.Name.
Remotes map[string]*RemoteConfig
// Submodules list of repository submodules, the key of the map is the name
// of the submodule, should equal to Submodule.Name.
Submodules map[string]*Submodule
// Branches list of branches, the key is the branch name and should
// equal Branch.Name
Branches map[string]*Branch
// Raw contains the raw information of a config file. The main goal is
// preserve the parsed information from the original format, to avoid
// dropping unsupported fields.
Raw *format.Config
}
Config contains the repository configuration ftp://www.kernel.org/pub/software/scm/git/docs/git-config.html#FILES
func (*Config) Marshal ¶
Marshal returns Config encoded as a git-config file.
func (*Config) Unmarshal ¶
Unmarshal parses a git-config file and stores it.
type ConfigStorer ¶
ConfigStorer generic storage of Config object
type Modules ¶
type Modules struct {
// Submodules is a map of submodules being the key the name of the submodule.
Submodules map[string]*Submodule
// contains filtered or unexported fields
}
Modules defines the submodules properties, represents a .gitmodules file https://www.kernel.org/pub/software/scm/git/docs/gitmodules.html
func (*Modules) Marshal ¶
Marshal returns Modules encoded as a git-config file.
type RefSpec ¶
type RefSpec string
RefSpec is a mapping from local branches to remote references The format of the refspec is an optional +, followed by <src>:<dst>, where <src> is the pattern for references on the remote side and <dst> is where those references will be written locally. The + tells Git to update the reference even if it isn’t a fast-forward. eg.: "+refs/heads/*:refs/remotes/origin/*"
https://git-scm.com/book/es/v2/Git-Internals-The-Refspec
func (RefSpec) Dst ¶
func (s RefSpec) Dst(n plumbing.ReferenceName) plumbing.ReferenceName
Dst returns the destination for the given remote reference.
func (RefSpec) IsDelete ¶
IsDelete returns true if the refspec indicates a delete (empty src).
func (RefSpec) IsForceUpdate ¶
IsForceUpdate returns if update is allowed in non fast-forward merges.
func (RefSpec) IsWildcard ¶
IsWildcard returns true if the RefSpec contains a wildcard.
func (RefSpec) Match ¶
func (s RefSpec) Match(n plumbing.ReferenceName) bool
Match match the given plumbing.ReferenceName against the source.
type RemoteConfig ¶
type RemoteConfig struct {
// Name of the remote
Name string
// URLs the URLs of a remote repository. It must be non-empty. Fetch will
// always use the first URL, while push will use all of them.
URLs []string
// Fetch the default set of "refspec" for fetch operation
Fetch []RefSpec
// contains filtered or unexported fields
}
RemoteConfig contains the configuration for a given remote repository.
func (*RemoteConfig) Validate ¶
func (c *RemoteConfig) Validate() error
Validate validates the fields and sets the default values.
type Submodule ¶
type Submodule struct {
// Name module name
Name string
// Path defines the path, relative to the top-level directory of the Git
// working tree.
Path string
// URL defines a URL from which the submodule repository can be cloned.
URL string
// Branch is a remote branch name for tracking updates in the upstream
// submodule. Optional value.
Branch string
// contains filtered or unexported fields
}
Submodule defines a submodule.
Source Files
¶
- branch.go
- config.go
- modules.go
- refspec.go