This page describes how to do Ubuntu merges, i.e. how to update Ubuntu packaging with the newest changes from Debian.
The only functional difference between Debian and Ubuntu is that the Ubuntu packages can't depend on libmecab, as the package is in universe in Ubuntu while MySQL is in main.
# Make a new branch based on debian/master git checkout mysql-5.7/debian/master git checkout -b mysql-5.7/ubuntu/new # Tag old debian merge point (where the two branches diverge) git tag old/debian <commit> # Add the diff commit. This should be the «Revert "Build with libmecab-dev"» commit git cherry-pick 2d8c1f1 # Merge changelogs together git-merge-changelogs old/debian mysql-5.7/ubuntu/devel HEAD git commit -m'merge-changelogs' debian/changelog # Edit debian/changelog with the new changelog entry git commit -m'Changelog for <version>' debian/changlog # Update maintainer field to point to Ubuntu update-maintainer git commit -m'update-maintainer' debian/control #Final merge commit to keep /ubuntu/devel fast-forwarding git merge -s ours mysql-5.7/ubuntu/devel
Based on Ubuntu git workflow
The below is a quick replication of the workflow used by Ubuntu, described at https://wiki.ubuntu.com/UbuntuDevelopment/Merging/GitWorkflow
However, the Ubuntu diff for MySQL is simple, so the below is more complicated (and more likely to go wrong) than we really need. Keeping it for possible future use.
Set up tags:
git tag new/debian alioth/mysql-5.7/debian/master git tag tag old/ubuntu alioth/mysql-5.7/ubuntu/devel git tag old/debian <divergence point>
Make the simplest thing ready for rebase:
git checkout old/ubuntu git rebase -i old/debian # remove changelog commits to prevent merge conflicts during future rebase
Also, use rebase -i to squash down any back and forthing (we call this "logical" in our workflow). This is most useful for future merges.
Rebase onto newest Debian
git rebase --onto new/debian old/debian git-merge-changelogs old/debian old/ubuntu HEAD # this updates debian/changelog git commit -mmerge-changelogs debian/changelog
# Write new changelog entry
git commit -m'Changelog for <version>' debian/changlog # or commit message as you wish update-maintainer git commit -m'update-maintainer' debian/control
Final merge commit to keep alioth/mysql-5.7/ubuntu/devel fast-forwarding
git merge -s ours old/ubuntu
git checkout -b my-merge git push ... # for review
Finally, tag the release as needed (but probably best to wait until Ubuntu upload before pushing in case changes were needed).
When uploading, push to alioth/mysql-5.7/ubuntu/devel first. Once uploaded, push the release tag.