mirror of
https://github.com/dolthub/dolt.git
synced 2026-02-10 10:30:57 -06:00
Merge pull request #1972 from dolthub/andy/merge-abort-clean-index
Reset staging index on `dolt merge --abort`
This commit is contained in:
@@ -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
|
||||
}
|
||||
|
||||
@@ -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)"
|
||||
|
||||
@@ -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 (
|
||||
|
||||
Reference in New Issue
Block a user