You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
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:
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.
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
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.
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.
The text was updated successfully, but these errors were encountered:
If the user goal is just to copy schema changes into a different branch, then cherry pick feels a lot easier and safer than a merge. I'm sure merge could be done safely too, but would require some care to get right. So my bet's on (3) too.
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:
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.ddolt 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.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.
The text was updated successfully, but these errors were encountered: