dolthub / dolthub/dolt

Schema-only merging

Open
#7,732 4 comments 0 reactions 0 assignees View on GitHub
enhancement merge version control
Dominant language
Go
Stars
24.4k
Forks
873
Avg merge
1d 5h
Merged PRs (30d)
108

Description

A common use case which comes up is that users of Dolt want to make schema changes on one branch, then update other branches with the same change. Traditionally we would do this as a merge in the commit DAG, but there is no way to separate out data changes if they exist.

Options to Consider:

1) Today you can have a Schema only branch which never receives merges from branches with data. There is no enforcement mechanism to ensure you never have data on that branch. We could make that a supported pattern that we enforce on a per-branch basis.
2) `dolt merge --schema-only` - This would do what user's probably expect/want. The creation of a new merge would not play well with future merges though. The DAG model doesn't really provide use a way to know that the merged branch was schema only, and a future merge into your working branch would delete all of your data. Danger.d
3) `dolt cherry-pick --schema-only` - This would pick the specific schema changes in the given commit. If there are multiple changes in your development branch which have schema changes, you would need to pick each of them individually. The down stream merging story would be very compelling though, and plays well into the DAG model.
4) `dolt rebase --schema-only` - Cherry-pick on steroids - you wouldn't lose multiple schema updates.

(3) is probably the easiest to implement, and will probably be easiest to understand as a user.

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.