Schema-only merging
- 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.