Merge pull request #1972 from dolthub/andy/merge-abort-clean-index

Reset staging index on `dolt merge --abort`
This commit is contained in:
AndyA
2021-08-03 15:48:27 -07:00
committed by GitHub
3 changed files with 56 additions and 0 deletions

View File

@@ -136,6 +136,7 @@ func (ws WorkingSet) StartMerge(commit *Commit) *WorkingSet {
func (ws WorkingSet) AbortMerge() *WorkingSet {
ws.workingRoot = ws.mergeState.PreMergeWorkingRoot()
ws.stagedRoot = ws.workingRoot
ws.mergeState = nil
return &ws
}

View File

@@ -88,6 +88,30 @@ teardown() {
[[ "${lines[1]}" =~ "9,9,9" ]] || false
}
@test "merge: --abort leaves clean working, staging roots" {
dolt branch other
dolt sql -q "INSERT INTO test1 VALUES (1,10,10);"
dolt commit -am "added rows to test1 on master"
dolt checkout other
dolt sql -q "INSERT INTO test1 VALUES (2,20,20);"
dolt commit -am "added rows to test1 on other"
dolt checkout master
dolt merge other
run dolt status
[ "$status" -eq 0 ]
[[ "$output" =~ "still merging" ]] || false
[[ "$output" =~ "modified: test" ]] || false
dolt merge --abort
run dolt status
[ "$status" -eq 0 ]
[[ "${lines[0]}" =~ "On branch master" ]] || false
[[ "${lines[1]}" =~ "nothing to commit, working tree clean" ]] || false
}
@test "merge: squash merge" {
dolt checkout -b merge_branch
dolt SQL -q "INSERT INTO test1 values (0,1,2)"

View File

@@ -348,6 +348,37 @@ SQL
[[ "$output" =~ "9,9,9" ]] || false
}
@test "sql-merge: DOLT_MERGE(--abort) clears index state" {
run dolt sql --disable-batch << SQL
set autocommit = off;
CREATE TABLE one_pk (
pk1 BIGINT NOT NULL,
c1 BIGINT,
c2 BIGINT,
PRIMARY KEY (pk1)
);
SELECT DOLT_COMMIT('-a', '-m', 'add tables');
SELECT DOLT_CHECKOUT('-b', 'feature-branch');
SELECT DOLT_CHECKOUT('master');
INSERT INTO one_pk (pk1,c1,c2) VALUES (0,0,0);
SELECT DOLT_COMMIT('-a', '-m', 'changed master');
SELECT DOLT_CHECKOUT('feature-branch');
INSERT INTO one_pk (pk1,c1,c2) VALUES (0,1,1);
SELECT DOLT_COMMIT('-a', '-m', 'changed feature branch');
SELECT DOLT_CHECKOUT('master');
SELECT DOLT_MERGE('feature-branch');
SELECT DOLT_MERGE('--abort');
commit;
SQL
[ $status -eq 0 ]
run dolt status
[ "$status" -eq 0 ]
[[ "${lines[0]}" =~ "On branch master" ]] || false
[[ "${lines[1]}" =~ "nothing to commit, working tree clean" ]] || false
}
@test "sql-merge: DOLT_MERGE with unresolved conflicts throws an error" {
run dolt sql << SQL
CREATE TABLE one_pk (