type VCSError … func (e *VCSError) Error() string { … } func (e *VCSError) Unwrap() error { … } func vcsErrorf(format string, a ...any) error { … } type vcsCacheKey … func NewRepo(ctx context.Context, vcs, remote string, local bool) (Repo, error) { … } var vcsRepoCache … type vcsRepo … func newVCSRepo(ctx context.Context, vcs, remote string, local bool) (Repo, error) { … } const vcsWorkDirType … type vcsCmd … var re … var vcsCmds … func (r *vcsRepo) loadTags(ctx context.Context) { … } func (r *vcsRepo) loadBranches(ctx context.Context) { … } func (r *vcsRepo) CheckReuse(ctx context.Context, old *Origin, subdir string) error { … } func (r *vcsRepo) Tags(ctx context.Context, prefix string) (*Tags, error) { … } func (r *vcsRepo) Stat(ctx context.Context, rev string) (*RevInfo, error) { … } func (r *vcsRepo) fetch(ctx context.Context) { … } func (r *vcsRepo) statLocal(ctx context.Context, rev string) (*RevInfo, error) { … } func (r *vcsRepo) Latest(ctx context.Context) (*RevInfo, error) { … } func (r *vcsRepo) ReadFile(ctx context.Context, rev, file string, maxSize int64) ([]byte, error) { … } func (r *vcsRepo) RecentTag(ctx context.Context, rev, prefix string, allowed func(string) bool) (tag string, err error) { … } func (r *vcsRepo) DescendsFrom(ctx context.Context, rev, tag string) (bool, error) { … } func (r *vcsRepo) ReadZip(ctx context.Context, rev, subdir string, maxSize int64) (zip io.ReadCloser, err error) { … } type deleteCloser … func (d *deleteCloser) Close() error { … } func hgParseStat(rev, out string) (*RevInfo, error) { … } func bzrParseStat(rev, out string) (*RevInfo, error) { … } func fossilParseStat(rev, out string) (*RevInfo, error) { … } type limitedWriter … func (l *limitedWriter) Write(p []byte) (n int, err error) { … }