removing file sys dependency from repo_state

This commit is contained in:
Andy Arthur
2019-12-16 09:10:17 -08:00
parent 33ec7f107b
commit 67cde8c440
10 changed files with 26 additions and 30 deletions
+1 -1
View File
@@ -307,7 +307,7 @@ func cloneRemote(ctx context.Context, srcDB *doltdb.DoltDB, remoteName, branch s
dEnv.RepoState.Head = ref.MarshalableRef{Ref: ref.NewBranchRef(branch)}
dEnv.RepoState.Staged = h.String()
dEnv.RepoState.Working = h.String()
err = dEnv.RepoState.Save()
err = dEnv.RepoState.Save(dEnv.FS)
if err != nil {
return errhand.BuildDError("error: failed to write repo state").AddCause(err).Build()
+3 -3
View File
@@ -128,7 +128,7 @@ func abortMerge(ctx context.Context, doltEnv *env.DoltEnv) errhand.VerboseError
err := actions.CheckoutAllTables(ctx, doltEnv)
if err == nil {
err = doltEnv.RepoState.ClearMerge()
err = doltEnv.RepoState.ClearMerge(doltEnv.FS)
if err == nil {
return nil
@@ -203,7 +203,7 @@ func executeFFMerge(ctx context.Context, dEnv *env.DoltEnv, cm2 *doltdb.Commit)
dEnv.RepoState.Working = h.String()
dEnv.RepoState.Staged = h.String()
err = dEnv.RepoState.Save()
err = dEnv.RepoState.Save(dEnv.FS)
if err != nil {
return errhand.BuildDError("unable to execute repo state update.").
@@ -239,7 +239,7 @@ func executeMerge(ctx context.Context, dEnv *env.DoltEnv, cm1, cm2 *doltdb.Commi
return errhand.BuildDError("error: failed to hash commit").AddCause(err).Build()
}
err = dEnv.RepoState.StartMerge(dref, h2.String())
err = dEnv.RepoState.StartMerge(dref, h2.String(), dEnv.FS)
if err != nil {
return errhand.BuildDError("Unable to update the repo state").AddCause(err).Build()
+1 -1
View File
@@ -192,7 +192,7 @@ func Push(ctx context.Context, commandStr string, args []string, dEnv *env.DoltE
Remote: remoteName,
}
err := dEnv.RepoState.Save()
err := dEnv.RepoState.Save(dEnv.FS)
if err != nil {
verr = errhand.BuildDError("error: failed to save repo state").AddCause(err).Build()
+2 -2
View File
@@ -148,7 +148,7 @@ func removeRemote(ctx context.Context, dEnv *env.DoltEnv, apr *argparser.ArgPars
}
delete(dEnv.RepoState.Remotes, old)
err = dEnv.RepoState.Save()
err = dEnv.RepoState.Save(dEnv.FS)
if err != nil {
return errhand.BuildDError("error: unable to save changes.").AddCause(err).Build()
@@ -249,7 +249,7 @@ func addRemote(dEnv *env.DoltEnv, apr *argparser.ArgParseResults) errhand.Verbos
r := env.NewRemote(remoteName, remoteUrl, params)
dEnv.RepoState.AddRemote(r)
err = dEnv.RepoState.Save()
err = dEnv.RepoState.Save(dEnv.FS)
if err != nil {
return errhand.BuildDError("error: Unable to save changes.").AddCause(err).Build()
+2 -2
View File
@@ -42,7 +42,7 @@ func MoveBranch(ctx context.Context, dEnv *env.DoltEnv, oldBranch, newBranch str
if ref.Equals(dEnv.RepoState.Head.Ref, oldRef) {
dEnv.RepoState.Head = ref.MarshalableRef{Ref: newRef}
err = dEnv.RepoState.Save()
err = dEnv.RepoState.Save(dEnv.FS)
if err != nil {
return err
@@ -243,7 +243,7 @@ func CheckoutBranch(ctx context.Context, dEnv *env.DoltEnv, brName string) error
dEnv.RepoState.Working = wrkHash.String()
dEnv.RepoState.Staged = stgHash.String()
err = dEnv.RepoState.Save()
err = dEnv.RepoState.Save(dEnv.FS)
return err
}
+1 -1
View File
@@ -103,7 +103,7 @@ func CommitStaged(ctx context.Context, dEnv *env.DoltEnv, msg string, date time.
_, err = dEnv.DoltDB.CommitWithParents(ctx, h, dEnv.RepoState.Head.Ref, mergeCmSpec, meta)
if err == nil {
dEnv.RepoState.ClearMerge()
dEnv.RepoState.ClearMerge(dEnv.FS)
}
return err
+1 -1
View File
@@ -121,7 +121,7 @@ func stageTables(ctx context.Context, dEnv *env.DoltEnv, tbls []string, staged *
dEnv.RepoState.Staged = sh.String()
dEnv.RepoState.Working = wh.String()
if err = dEnv.RepoState.Save(); err != nil {
if err = dEnv.RepoState.Save(dEnv.FS); err != nil {
return env.ErrStateUpdate
}
+2 -2
View File
@@ -299,7 +299,7 @@ func (dEnv *DoltEnv) UpdateWorkingRoot(ctx context.Context, newRoot *doltdb.Root
}
dEnv.RepoState.Working = h.String()
err = dEnv.RepoState.Save()
err = dEnv.RepoState.Save(dEnv.FS)
if err != nil {
return ErrStateUpdate
@@ -334,7 +334,7 @@ func (dEnv *DoltEnv) UpdateStagedRoot(ctx context.Context, newRoot *doltdb.RootV
}
dEnv.RepoState.Staged = h.String()
err = dEnv.RepoState.Save()
err = dEnv.RepoState.Save(dEnv.FS)
if err != nil {
return hash.Hash{}, ErrStateUpdate
+1 -1
View File
@@ -51,7 +51,7 @@ func createTestEnv(isInitialized bool, hasLocalConfig bool) *DoltEnv {
hashStr := hash.Hash{}.String()
masterRef := ref.NewBranchRef("master")
repoState := &RepoState{ref.MarshalableRef{Ref: masterRef}, hashStr, hashStr, nil, nil, nil, nil}
repoState := &RepoState{ref.MarshalableRef{Ref: masterRef}, hashStr, hashStr, nil, nil, nil}
repoStateData, err := json.Marshal(repoState)
if err != nil {
+12 -16
View File
@@ -41,8 +41,6 @@ type RepoState struct {
Merge *MergeState `json:"merge"`
Remotes map[string]Remote `json:"remotes"`
Branches map[string]BranchConfig `json:"branches"`
fs filesys.ReadWriteFS
}
func LoadRepoState(fs filesys.ReadWriteFS) (*RepoState, error) {
@@ -60,17 +58,15 @@ func LoadRepoState(fs filesys.ReadWriteFS) (*RepoState, error) {
return nil, err
}
repoState.fs = fs
return &repoState, nil
}
func CloneRepoState(fs filesys.ReadWriteFS, r Remote) (*RepoState, error) {
h := hash.Hash{}
hashStr := h.String()
rs := &RepoState{ref.MarshalableRef{Ref: ref.NewBranchRef("master")}, hashStr, hashStr, nil, map[string]Remote{r.Name: r}, nil, fs}
rs := &RepoState{ref.MarshalableRef{Ref: ref.NewBranchRef("master")}, hashStr, hashStr, nil, map[string]Remote{r.Name: r}, nil}
err := rs.Save()
err := rs.Save(fs)
if err != nil {
return nil, err
@@ -87,9 +83,9 @@ func CreateRepoState(fs filesys.ReadWriteFS, br string, rootHash hash.Hash) (*Re
return nil, err
}
rs := &RepoState{ref.MarshalableRef{Ref: headRef}, hashStr, hashStr, nil, nil, nil, fs}
rs := &RepoState{ref.MarshalableRef{Ref: headRef}, hashStr, hashStr, nil, nil, nil}
err = rs.Save()
err = rs.Save(fs)
if err != nil {
return nil, err
@@ -98,7 +94,7 @@ func CreateRepoState(fs filesys.ReadWriteFS, br string, rootHash hash.Hash) (*Re
return rs, nil
}
func (rs *RepoState) Save() error {
func (rs *RepoState) Save(fs filesys.ReadWriteFS) error {
data, err := json.MarshalIndent(rs, "", " ")
if err != nil {
@@ -107,7 +103,7 @@ func (rs *RepoState) Save() error {
path := getRepoStateFile()
return rs.fs.WriteFile(path, data)
return fs.WriteFile(path, data)
}
func (rs *RepoState) CWBHeadSpec() *doltdb.CommitSpec {
@@ -116,19 +112,19 @@ func (rs *RepoState) CWBHeadSpec() *doltdb.CommitSpec {
return spec
}
func (rs *RepoState) StartMerge(dref ref.DoltRef, commit string) error {
func (rs *RepoState) StartMerge(dref ref.DoltRef, commit string, fs filesys.Filesys) error {
rs.Merge = &MergeState{ref.MarshalableRef{Ref: dref}, commit, rs.Working}
return rs.Save()
return rs.Save(fs)
}
func (rs *RepoState) AbortMerge() error {
func (rs *RepoState) AbortMerge(fs filesys.Filesys) error {
rs.Working = rs.Merge.PreMergeWorking
return rs.ClearMerge()
return rs.ClearMerge(fs)
}
func (rs *RepoState) ClearMerge() error {
func (rs *RepoState) ClearMerge(fs filesys.Filesys) error {
rs.Merge = nil
return rs.Save()
return rs.Save(fs)
}
func (rs *RepoState) AddRemote(r Remote) {