mirror of
https://github.com/dolthub/dolt.git
synced 2026-04-24 03:16:12 -05:00
Changed signature of env.UpdateWorkingRoot
This commit is contained in:
@@ -45,7 +45,10 @@ func (a StageAll) CommandString() string { return "stage_all" }
|
||||
|
||||
// Exec executes a StageAll command on a test dolt environment.
|
||||
func (a StageAll) Exec(t *testing.T, dEnv *env.DoltEnv) error {
|
||||
return actions.StageAllTables(context.Background(), dEnv.DbData())
|
||||
workingRoot, err := dEnv.WorkingRoot(context.Background())
|
||||
require.NoError(t, err)
|
||||
|
||||
return actions.StageAllTables(context.Background(), workingRoot, dEnv.DbData())
|
||||
}
|
||||
|
||||
type CommitStaged struct {
|
||||
@@ -57,6 +60,9 @@ func (c CommitStaged) CommandString() string { return fmt.Sprintf("commit_staged
|
||||
|
||||
// Exec executes a CommitStaged command on a test dolt environment.
|
||||
func (c CommitStaged) Exec(t *testing.T, dEnv *env.DoltEnv) error {
|
||||
workingRoot, err := dEnv.WorkingRoot(context.Background())
|
||||
require.NoError(t, err)
|
||||
|
||||
name, email, err := actions.GetNameAndEmail(dEnv.Config)
|
||||
|
||||
if err != nil {
|
||||
@@ -65,7 +71,7 @@ func (c CommitStaged) Exec(t *testing.T, dEnv *env.DoltEnv) error {
|
||||
|
||||
dbData := dEnv.DbData()
|
||||
|
||||
_, err = actions.CommitStaged(context.Background(), dbData, actions.CommitStagedProps{
|
||||
_, err = actions.CommitStaged(context.Background(), workingRoot, dbData, actions.CommitStagedProps{
|
||||
Message: c.Message,
|
||||
Date: time.Now(),
|
||||
AllowEmpty: false,
|
||||
@@ -86,7 +92,10 @@ func (c CommitAll) CommandString() string { return fmt.Sprintf("commit: %s", c.M
|
||||
|
||||
// Exec executes a CommitAll command on a test dolt environment.
|
||||
func (c CommitAll) Exec(t *testing.T, dEnv *env.DoltEnv) error {
|
||||
err := actions.StageAllTables(context.Background(), dEnv.DbData())
|
||||
workingRoot, err := dEnv.WorkingRoot(context.Background())
|
||||
require.NoError(t, err)
|
||||
|
||||
err = actions.StageAllTables(context.Background(), workingRoot, dEnv.DbData())
|
||||
require.NoError(t, err)
|
||||
|
||||
name, email, err := actions.GetNameAndEmail(dEnv.Config)
|
||||
@@ -97,7 +106,7 @@ func (c CommitAll) Exec(t *testing.T, dEnv *env.DoltEnv) error {
|
||||
|
||||
dbData := dEnv.DbData()
|
||||
|
||||
_, err = actions.CommitStaged(context.Background(), dbData, actions.CommitStagedProps{
|
||||
_, err = actions.CommitStaged(context.Background(), workingRoot, dbData, actions.CommitStagedProps{
|
||||
Message: c.Message,
|
||||
Date: time.Now(),
|
||||
AllowEmpty: false,
|
||||
@@ -126,7 +135,7 @@ func (r ResetHard) Exec(t *testing.T, dEnv *env.DoltEnv) error {
|
||||
return err
|
||||
}
|
||||
|
||||
_, err = dEnv.UpdateStagedRoot(context.Background(), headRoot)
|
||||
err = dEnv.UpdateStagedRoot(context.Background(), headRoot)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
@@ -225,7 +234,10 @@ func (m Merge) Exec(t *testing.T, dEnv *env.DoltEnv) error {
|
||||
assert.NoError(t, err)
|
||||
assert.NotEqual(t, h1, h2)
|
||||
|
||||
tblNames, _, err := env.MergeWouldStompChanges(context.Background(), cm2, dEnv.DbData())
|
||||
workingRoot, err := dEnv.WorkingRoot(context.Background())
|
||||
require.NoError(t, err)
|
||||
|
||||
tblNames, _, err := env.MergeWouldStompChanges(context.Background(), workingRoot, cm2, dEnv.DbData())
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
@@ -282,7 +294,7 @@ func (m Merge) Exec(t *testing.T, dEnv *env.DoltEnv) error {
|
||||
return err
|
||||
}
|
||||
|
||||
_, err = dEnv.UpdateStagedRoot(context.Background(), mergedRoot)
|
||||
err = dEnv.UpdateStagedRoot(context.Background(), mergedRoot)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
+2
-4
@@ -114,9 +114,7 @@ func checkoutTables(ctx context.Context, dbData env.DbData, roots map[doltdb.Roo
|
||||
}
|
||||
|
||||
// update the working root with currRoot
|
||||
_, err := env.UpdateWorkingRoot(ctx, dbData.Ddb, dbData.Rsw, currRoot)
|
||||
|
||||
return err
|
||||
return env.UpdateWorkingRoot(ctx, dbData.Rsw, currRoot)
|
||||
}
|
||||
|
||||
func checkoutDocs(ctx context.Context, dbData env.DbData, roots map[doltdb.RootType]*doltdb.RootValue, docs doltdocs.Docs) error {
|
||||
@@ -134,7 +132,7 @@ func checkoutDocs(ctx context.Context, dbData env.DbData, roots map[doltdb.RootT
|
||||
docs = updatedDocs
|
||||
}
|
||||
|
||||
_, err := env.UpdateWorkingRoot(ctx, dbData.Ddb, dbData.Rsw, currRoot)
|
||||
err := env.UpdateWorkingRoot(ctx, dbData.Rsw, currRoot)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
+1
-3
@@ -150,13 +150,11 @@ func CommitStaged(ctx context.Context, workingRoot *doltdb.RootValue, dbData env
|
||||
}
|
||||
|
||||
workingRoot, err = workingRoot.UpdateSuperSchemasFromOther(ctx, stagedTblNames, srt)
|
||||
|
||||
if err != nil {
|
||||
return "", err
|
||||
}
|
||||
|
||||
_, err = env.UpdateWorkingRoot(ctx, ddb, rsw, workingRoot)
|
||||
|
||||
err = env.UpdateWorkingRoot(ctx, rsw, workingRoot)
|
||||
if err != nil {
|
||||
return "", err
|
||||
}
|
||||
|
||||
+2
-3
@@ -83,8 +83,7 @@ func resetHardTables(ctx context.Context, dbData env.DbData, cSpecStr string, wo
|
||||
}
|
||||
}
|
||||
|
||||
_, err = env.UpdateWorkingRoot(ctx, ddb, rsw, newWkRoot)
|
||||
|
||||
err = env.UpdateWorkingRoot(ctx, rsw, newWkRoot)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
@@ -268,7 +267,7 @@ func resetDocs(ctx context.Context, dbData env.DbData, workingRoot, headRoot, st
|
||||
return nil, err
|
||||
}
|
||||
|
||||
_, err = env.UpdateWorkingRoot(ctx, dbData.Ddb, dbData.Rsw, workingRoot)
|
||||
err = env.UpdateWorkingRoot(ctx, dbData.Rsw, workingRoot)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
+1
-1
@@ -109,7 +109,7 @@ func stageTables(ctx context.Context, db *doltdb.DoltDB, rsw env.RepoStateWriter
|
||||
return err
|
||||
}
|
||||
|
||||
if _, err := env.UpdateWorkingRoot(ctx, db, rsw, working); err == nil {
|
||||
if err = env.UpdateWorkingRoot(ctx, rsw, working); err == nil {
|
||||
if sh, err := env.UpdateStagedRoot(ctx, db, rsw, staged); err == nil {
|
||||
err = rsw.SetStagedHash(ctx, sh)
|
||||
|
||||
|
||||
+2
-4
@@ -49,8 +49,7 @@ func ResetWorkingDocsToStagedDocs(
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
_, err = UpdateWorkingRoot(ctx, ddb, rsw, newWrkRoot)
|
||||
return err
|
||||
return UpdateWorkingRoot(ctx, rsw, newWrkRoot)
|
||||
}
|
||||
|
||||
if stgDocsFound {
|
||||
@@ -58,8 +57,7 @@ func ResetWorkingDocsToStagedDocs(
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
_, err = UpdateWorkingRoot(ctx, ddb, rsw, newWrkRoot)
|
||||
return err
|
||||
return UpdateWorkingRoot(ctx, rsw, newWrkRoot)
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
+5
-9
@@ -203,20 +203,15 @@ func (rs *RepoState) GetMergeCommit() string {
|
||||
}
|
||||
|
||||
// Updates the working root.
|
||||
func UpdateWorkingRoot(ctx context.Context, ddb *doltdb.DoltDB, rsw RepoStateWriter, newRoot *doltdb.RootValue) (hash.Hash, error) {
|
||||
func UpdateWorkingRoot(ctx context.Context, rsw RepoStateWriter, newRoot *doltdb.RootValue) error {
|
||||
//logrus.Infof("Updating working root with value %s", newRoot.DebugString(ctx, true))
|
||||
|
||||
h, err := ddb.WriteRootValue(ctx, newRoot)
|
||||
err := rsw.UpdateWorkingRoot(ctx, newRoot)
|
||||
if err != nil {
|
||||
return hash.Hash{}, doltdb.ErrNomsIO
|
||||
return ErrStateUpdate
|
||||
}
|
||||
|
||||
err = rsw.UpdateWorkingRoot(ctx, newRoot)
|
||||
if err != nil {
|
||||
return hash.Hash{}, ErrStateUpdate
|
||||
}
|
||||
|
||||
return h, nil
|
||||
return nil
|
||||
}
|
||||
|
||||
// Returns the head root.
|
||||
@@ -265,6 +260,7 @@ func UpdateStagedRootWithVErr(ddb *doltdb.DoltDB, rsw RepoStateWriter, updatedRo
|
||||
return nil
|
||||
}
|
||||
|
||||
// TODO: this needs to be a function in the merge package, not repo state
|
||||
func MergeWouldStompChanges(ctx context.Context, workingRoot *doltdb.RootValue, mergeCommit *doltdb.Commit, dbData DbData) ([]string, map[string]hash.Hash, error) {
|
||||
headRoot, err := HeadRoot(ctx, dbData.Ddb, dbData.Rsr)
|
||||
|
||||
|
||||
@@ -184,17 +184,13 @@ func rebaseRefs(ctx context.Context, dbData env.DbData, replay ReplayCommitFn, n
|
||||
return err
|
||||
}
|
||||
|
||||
// TODO: this should be a single update to repo state, not two
|
||||
_, err = env.UpdateStagedRoot(ctx, ddb, rsw, r)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
_, err = env.UpdateWorkingRoot(ctx, ddb, rsw, r)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
return err
|
||||
return env.UpdateWorkingRoot(ctx, rsw, r)
|
||||
}
|
||||
|
||||
func rebase(ctx context.Context, ddb *doltdb.DoltDB, replay ReplayCommitFn, nerf NeedsRebaseFn, origins ...*doltdb.Commit) ([]*doltdb.Commit, error) {
|
||||
|
||||
@@ -325,7 +325,8 @@ func mergeRootToWorking(
|
||||
}
|
||||
}
|
||||
|
||||
workingHash, err := env.UpdateWorkingRoot(ctx, dbData.Ddb, dbData.Rsw, workingRoot)
|
||||
// TODO: this should only update the session working root
|
||||
err = env.UpdateWorkingRoot(ctx, dbData.Rsw, workingRoot)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
@@ -341,7 +342,9 @@ func mergeRootToWorking(
|
||||
return err
|
||||
}
|
||||
|
||||
return ctx.SetSessionVariable(ctx, sqle.WorkingKey(dbName), workingHash.String())
|
||||
// TODO: set the session root directly
|
||||
// return ctx.SetSessionVariable(ctx, sqle.WorkingKey(dbName), workingHash.String())
|
||||
return nil
|
||||
}
|
||||
|
||||
func checkForConflicts(tblToStats map[string]*merge.MergeStats) bool {
|
||||
|
||||
@@ -1588,7 +1588,7 @@ func testSelectDiffQuery(t *testing.T, test SelectTest) {
|
||||
root, err := cm.GetRootValue()
|
||||
require.NoError(t, err)
|
||||
|
||||
_, err = dEnv.UpdateStagedRoot(ctx, root)
|
||||
err = dEnv.UpdateStagedRoot(ctx, root)
|
||||
require.NoError(t, err)
|
||||
|
||||
err = dEnv.UpdateWorkingRoot(ctx, root)
|
||||
|
||||
Reference in New Issue
Block a user