# Functions
IndexByName returns a map using project name as index to group projects.
IndexByPath returns a map using project path as index to group projects.
IsClean indicates git worktree is clean.
Join two group of projects, ignore duplicated projects.
MatchGroups checks if project has matched groups.
NewCmdExecResult creates new instance of CmdExecResult.
NewManifestProject returns a manifest project: a worktree with a seperate repository.
NewMirrorProject returns a mirror project.
NewProject returns a project: project worktree with a bared repo and a seperate repository.
NewRemote return new remote object.
NewRemoteMap returns new RemoteMap object.
ProjectsTree returns a map using project path as index to group projects.
# Constants
GIT is git command name.
# Structs
Branch wraps branch name and object ID.
CheckoutOptions is options for git fetch.
CmdExecResult holds command output, and error.
ConfigWithDefault checks git config from both project and manifest project.
FetchOptions is options for git fetch.
ManifestProject is a special type of project.
PatchSet contains code review reference and commits.
Project inherits manifest's Project and has two related repositories.
Reference wraps reference name and object ID.
Remote wraps manifest remote.
RemoteMap holds all remotes of a project.
RemoteTrack holds info of remote tracking branch.
RepoSettings holds settings in manifest project.
Repository has repository related operations.
ReviewableBranch holds branch of project ready for upload.
Tree is used to group projects by path.