Skip to content

Commit

Permalink
return commit hash for dolt_merge() when --no-ff is not specified (
Browse files Browse the repository at this point in the history
  • Loading branch information
jycor authored Jul 10, 2023
1 parent 106799f commit ea9839f
Show file tree
Hide file tree
Showing 7 changed files with 220 additions and 198 deletions.
14 changes: 11 additions & 3 deletions go/libraries/doltcore/sqle/dprocedures/dolt_merge.go
Original file line number Diff line number Diff line change
Expand Up @@ -92,6 +92,10 @@ func doDoltMerge(ctx *sql.Context, args []string) (string, int, int, error) {
return "", noConflictsOrViolations, threeWayMerge, err
}

if len(args) == 0 {
return "", noConflictsOrViolations, threeWayMerge, errors.New("error: Please specify a branch to merge")
}

if apr.ContainsAll(cli.SquashParam, cli.NoFFParam) {
return "", noConflictsOrViolations, threeWayMerge, fmt.Errorf("error: Flags '--%s' and '--%s' cannot be used together.\n", cli.SquashParam, cli.NoFFParam)
}
Expand Down Expand Up @@ -151,7 +155,7 @@ func doDoltMerge(ctx *sql.Context, args []string) (string, int, int, error) {

ws, commit, conflicts, fastForward, err := performMerge(ctx, sess, roots, ws, dbName, mergeSpec, apr.Contains(cli.NoCommitFlag), msg)
if err != nil || conflicts != 0 || fastForward != 0 {
return "", conflicts, fastForward, err
return commit, conflicts, fastForward, err
}

return commit, conflicts, fastForward, nil
Expand Down Expand Up @@ -214,6 +218,9 @@ func performMerge(ctx *sql.Context, sess *dsess.DoltSession, roots doltdb.Roots,
}

ws, err = executeFFMerge(ctx, dbName, spec.Squash, ws, dbData, spec.MergeC)
if h, cerr := spec.MergeC.HashOf(); cerr == nil {
return ws, h.String(), noConflictsOrViolations, fastForwardMerge, err
}
return ws, "", noConflictsOrViolations, fastForwardMerge, err
}

Expand Down Expand Up @@ -245,15 +252,16 @@ func performMerge(ctx *sql.Context, sess *dsess.DoltSession, roots doltdb.Roots,
return ws, "", noConflictsOrViolations, threeWayMerge, err
}

var commit string
if !noCommit {
author := fmt.Sprintf("%s <%s>", spec.Name, spec.Email)
commit, _, err := doDoltCommit(ctx, []string{"-m", msg, "--author", author})
commit, _, err = doDoltCommit(ctx, []string{"-m", msg, "--author", author})
if err != nil {
return ws, commit, noConflictsOrViolations, threeWayMerge, fmt.Errorf("dolt_commit failed")
}
}

return ws, "", noConflictsOrViolations, threeWayMerge, nil
return ws, commit, noConflictsOrViolations, threeWayMerge, nil
}

func abortMerge(ctx *sql.Context, workingSet *doltdb.WorkingSet, roots doltdb.Roots) (*doltdb.WorkingSet, error) {
Expand Down
90 changes: 45 additions & 45 deletions go/libraries/doltcore/sqle/enginetest/dolt_queries.go
Original file line number Diff line number Diff line change
Expand Up @@ -3599,12 +3599,12 @@ var DoltTagTestScripts = []queries.ScriptTest{
Expected: []sql.Row{{types.OkResult{RowsAffected: 2}}},
},
{
Query: "CALL DOLT_COMMIT('-am','made changes in other')",
SkipResultsCheck: true,
Query: "CALL DOLT_COMMIT('-am','made changes in other')",
Expected: []sql.Row{{doltCommit}},
},
{
Query: "CALL DOLT_MERGE('v1')",
Expected: []sql.Row{{"", 0, 0}},
Expected: []sql.Row{{doltCommit, 0, 0}},
},
{
Query: "SELECT * FROM test",
Expand Down Expand Up @@ -3715,8 +3715,8 @@ var DoltAutoIncrementTests = []queries.ScriptTest{
Expected: []sql.Row{{types.OkResult{RowsAffected: 2, InsertID: 1}}},
},
{
Query: "call dolt_commit('-am', 'two values on main')",
SkipResultsCheck: true,
Query: "call dolt_commit('-am', 'two values on main')",
Expected: []sql.Row{{doltCommit}},
},
{
Query: "call dolt_checkout('branch1')",
Expand All @@ -3734,8 +3734,8 @@ var DoltAutoIncrementTests = []queries.ScriptTest{
},
},
{
Query: "call dolt_commit('-am', 'two values on branch1')",
SkipResultsCheck: true,
Query: "call dolt_commit('-am', 'two values on branch1')",
Expected: []sql.Row{{doltCommit}},
},
{
Query: "call dolt_checkout('branch2')",
Expand Down Expand Up @@ -4233,8 +4233,8 @@ var DoltCherryPickTests = []queries.ScriptTest{
},
Assertions: []queries.ScriptTestAssertion{
{
Query: "CALL dolt_merge('--no-ff', 'branch1');",
SkipResultsCheck: true, // TODO: how do i predict the hash
Query: "CALL dolt_merge('--no-ff', 'branch1');",
Expected: []sql.Row{{doltCommit, 0, 0}},
},
{
Query: "CALL dolt_cherry_pick('HEAD');",
Expand Down Expand Up @@ -4307,16 +4307,16 @@ var DoltCherryPickTests = []queries.ScriptTest{
Expected: []sql.Row{},
},
{
Query: "call dolt_cherry_pick(@commit2);",
SkipResultsCheck: true,
Query: "call dolt_cherry_pick(@commit2);",
Expected: []sql.Row{{doltCommit, 0, 0, 0}},
},
{
Query: "SELECT * FROM t;",
Expected: []sql.Row{{2, "two"}},
},
{
Query: "call dolt_cherry_pick(@commit1);",
SkipResultsCheck: true,
Query: "call dolt_cherry_pick(@commit1);",
Expected: []sql.Row{{doltCommit, 0, 0, 0}},
},
{
Query: "SELECT * FROM t order by pk;",
Expand All @@ -4341,8 +4341,8 @@ var DoltCherryPickTests = []queries.ScriptTest{
Expected: []sql.Row{},
},
{
Query: "CALL DOLT_CHERRY_PICK('branch1');",
SkipResultsCheck: true,
Query: "CALL DOLT_CHERRY_PICK('branch1');",
Expected: []sql.Row{{doltCommit, 0, 0, 0}},
},
{
Query: "SELECT * FROM keyless;",
Expand All @@ -4366,8 +4366,8 @@ var DoltCherryPickTests = []queries.ScriptTest{
Expected: []sql.Row{{"myview"}},
},
{
Query: "call dolt_cherry_pick(@commit1);",
SkipResultsCheck: true,
Query: "call dolt_cherry_pick(@commit1);",
Expected: []sql.Row{{doltCommit, 0, 0, 0}},
},
{
Query: "SHOW TABLES;",
Expand Down Expand Up @@ -4397,8 +4397,8 @@ var DoltCherryPickTests = []queries.ScriptTest{
Expected: []sql.Row{{"myview"}, {"dropme"}},
},
{
Query: "call dolt_cherry_pick(@commit1);",
SkipResultsCheck: true,
Query: "call dolt_cherry_pick(@commit1);",
Expected: []sql.Row{{doltCommit, 0, 0, 0}},
},
{
Query: "SHOW TABLES;",
Expand All @@ -4419,8 +4419,8 @@ var DoltCherryPickTests = []queries.ScriptTest{
},
Assertions: []queries.ScriptTestAssertion{
{
Query: "call dolt_cherry_pick(@commit1);",
SkipResultsCheck: true,
Query: "call dolt_cherry_pick(@commit1);",
Expected: []sql.Row{{doltCommit, 0, 0, 0}},
},
{
Query: "SHOW CREATE TABLE test;",
Expand All @@ -4441,8 +4441,8 @@ var DoltCherryPickTests = []queries.ScriptTest{
},
Assertions: []queries.ScriptTestAssertion{
{
Query: "call dolt_cherry_pick(@commit1);",
SkipResultsCheck: true,
Query: "call dolt_cherry_pick(@commit1);",
Expected: []sql.Row{{doltCommit, 0, 0, 0}},
},
{
Query: "SHOW CREATE TABLE test;",
Expand All @@ -4463,8 +4463,8 @@ var DoltCherryPickTests = []queries.ScriptTest{
},
Assertions: []queries.ScriptTestAssertion{
{
Query: "call dolt_cherry_pick(@commit1);",
SkipResultsCheck: true,
Query: "call dolt_cherry_pick(@commit1);",
Expected: []sql.Row{{doltCommit, 0, 0, 0}},
},
{
Query: "SHOW CREATE TABLE test;",
Expand Down Expand Up @@ -4747,8 +4747,8 @@ var DoltCommitTests = []queries.ScriptTest{
Expected: []sql.Row{{types.NewOkResult(1)}},
},
{
Query: "CALL DOLT_COMMIT('-ALL', '-m', 'update table terminator');",
SkipResultsCheck: true,
Query: "CALL DOLT_COMMIT('-ALL', '-m', 'update table terminator');",
Expected: []sql.Row{{doltCommit}},
},
// check last commit
{
Expand All @@ -4757,8 +4757,8 @@ var DoltCommitTests = []queries.ScriptTest{
},
// amend last commit
{
Query: "CALL DOLT_COMMIT('-amend', '-m', 'update table t');",
SkipResultsCheck: true,
Query: "CALL DOLT_COMMIT('-amend', '-m', 'update table t');",
Expected: []sql.Row{{doltCommit}},
},
// check amended commit
{
Expand All @@ -4783,8 +4783,8 @@ var DoltCommitTests = []queries.ScriptTest{
Expected: []sql.Row{{types.NewOkResult(0)}},
},
{
Query: "CALL DOLT_COMMIT('-Am', 'drop table t');",
SkipResultsCheck: true,
Query: "CALL DOLT_COMMIT('-Am', 'drop table t');",
Expected: []sql.Row{{doltCommit}},
},
{
Query: "CALL DOLT_RESET('--hard');",
Expand All @@ -4800,13 +4800,13 @@ var DoltCommitTests = []queries.ScriptTest{
Expected: []sql.Row{{types.NewOkResult(0)}},
},
{
Query: "CALL DOLT_COMMIT('-Am', 'add table 21');",
SkipResultsCheck: true,
Query: "CALL DOLT_COMMIT('-Am', 'add table 21');",
Expected: []sql.Row{{doltCommit}},
},
// amend last commit
{
Query: "CALL DOLT_COMMIT('-amend', '-m', 'add table 2');",
SkipResultsCheck: true,
Query: "CALL DOLT_COMMIT('-amend', '-m', 'add table 2');",
Expected: []sql.Row{{doltCommit}},
},
// check amended commit
{
Expand Down Expand Up @@ -4868,8 +4868,8 @@ var DoltCommitTests = []queries.ScriptTest{
Expected: []sql.Row{{2, nil, "added"}},
},
{
Query: "CALL DOLT_COMMIT('--amend', '-m', 'amended commit message');",
SkipResultsCheck: true, // commit hash is being returned, skip check
Query: "CALL DOLT_COMMIT('--amend', '-m', 'amended commit message');",
Expected: []sql.Row{{doltCommit}},
},
{
Query: "SELECT message FROM dolt_log;",
Expand Down Expand Up @@ -4937,8 +4937,8 @@ var DoltCommitTests = []queries.ScriptTest{
Expected: []sql.Row{{0}},
},
{
Query: "CALL DOLT_COMMIT('--amend');",
SkipResultsCheck: true, // commit hash is being returned, skip check
Query: "CALL DOLT_COMMIT('--amend');",
Expected: []sql.Row{{doltCommit}},
},
{
Query: "SELECT message FROM dolt_log;",
Expand Down Expand Up @@ -4975,8 +4975,8 @@ var DoltCommitTests = []queries.ScriptTest{
Expected: []sql.Row{{0}},
},
{
Query: "CALL DOLT_COMMIT('--amend', '-m', 'amended commit with added changes');",
SkipResultsCheck: true, // commit hash is being returned, skip check
Query: "CALL DOLT_COMMIT('--amend', '-m', 'amended commit with added changes');",
Expected: []sql.Row{{doltCommit}},
},
{
Query: "SELECT COUNT(*) FROM dolt_status;",
Expand Down Expand Up @@ -5041,8 +5041,8 @@ var DoltCommitTests = []queries.ScriptTest{
Expected: []sql.Row{{0}},
},
{
Query: "CALL DOLT_COMMIT('--amend', '-m', 'amended commit with removed changes');",
SkipResultsCheck: true, // commit hash is being returned, skip check
Query: "CALL DOLT_COMMIT('--amend', '-m', 'amended commit with removed changes');",
Expected: []sql.Row{{doltCommit}},
},
{
Query: "SELECT * FROM test;",
Expand Down Expand Up @@ -5100,8 +5100,8 @@ var DoltCommitTests = []queries.ScriptTest{
},
Assertions: []queries.ScriptTestAssertion{
{
Query: "CALL DOLT_COMMIT('--amend', '-m', 'new merge');",
SkipResultsCheck: true, // commit hash is being returned, skip check
Query: "CALL DOLT_COMMIT('--amend', '-m', 'new merge');",
Expected: []sql.Row{{doltCommit}},
},
{
Query: "SELECT message FROM dolt_log;",
Expand Down
Loading

0 comments on commit ea9839f

Please sign in to comment.