2018-11-27 16:52:20 -05:00
|
|
|
package storage
|
|
|
|
|
|
|
|
import (
|
2019-04-16 22:04:23 -04:00
|
|
|
"errors"
|
|
|
|
|
2018-11-27 16:52:20 -05:00
|
|
|
"gopkg.in/src-d/go-git.v4/config"
|
|
|
|
"gopkg.in/src-d/go-git.v4/plumbing/storer"
|
|
|
|
)
|
|
|
|
|
2019-04-16 22:04:23 -04:00
|
|
|
var ErrReferenceHasChanged = errors.New("reference has changed concurrently")
|
|
|
|
|
2018-11-27 16:52:20 -05:00
|
|
|
// Storer is a generic storage of objects, references and any information
|
|
|
|
// related to a particular repository. The package gopkg.in/src-d/go-git.v4/storage
|
|
|
|
// contains two implementation a filesystem base implementation (such as `.git`)
|
|
|
|
// and a memory implementations being ephemeral
|
|
|
|
type Storer interface {
|
|
|
|
storer.EncodedObjectStorer
|
|
|
|
storer.ReferenceStorer
|
|
|
|
storer.ShallowStorer
|
|
|
|
storer.IndexStorer
|
|
|
|
config.ConfigStorer
|
|
|
|
ModuleStorer
|
|
|
|
}
|
|
|
|
|
|
|
|
// ModuleStorer allows interact with the modules' Storers
|
|
|
|
type ModuleStorer interface {
|
|
|
|
// Module returns a Storer representing a submodule, if not exists returns a
|
|
|
|
// new empty Storer is returned
|
|
|
|
Module(name string) (Storer, error)
|
|
|
|
}
|