Merge Guidelines: Difference between revisions
(Moved content to page without minus seperator) |
(With the new branch policy in place, there is no merge process for Qt in general.) |
||
Line 2: | Line 2: | ||
= Merge process in Qt = | = Merge process in Qt = | ||
After 15/05/2020, merges are no longer performed for most modules and branches. Instead, all changes go into dev, and are cherry-picked down into more stable branches. | |||
However, the maintainers of a module might decide to continue development on a stable branch. For example, the module might not be part of the Qt 6.0 scope, so it will be maintained in the 5.15 branch. To enable a port to Qt 6 later, regular merges into dev might then be an option. | |||
= Merge instructions = | = Merge instructions = |
Revision as of 13:30, 15 May 2020
Merge process in Qt
After 15/05/2020, merges are no longer performed for most modules and branches. Instead, all changes go into dev, and are cherry-picked down into more stable branches.
However, the maintainers of a module might decide to continue development on a stable branch. For example, the module might not be part of the Qt 6.0 scope, so it will be maintained in the 5.15 branch. To enable a port to Qt 6 later, regular merges into dev might then be an option.
Merge instructions
There are several ways to go about the merges, for individual merges of one repository use the normal git merge command.
git fetch
git checkout -B dev origin/dev
git merge origin/stable
git push gerrit HEAD:refs/for/dev
Note that you need special permissions to push merges and gerrit will refuse your push otherwise.
Since it's not feasible to do so many commands manually for each repository, there is a script in qtrepotools/bin. Make sure to have python and qtrepotools/bin in your path.
cd qt5 # this command needs a full checkout of qt5.git and all submodules
git qt-merge-mainlines -s -f stable -t dev
Shows the status. Pass it -d to do the merges. -f is the source branch and -t is the branch that the merge ends up in.