Qt Maemo Git Process

The Maemo version of Qt lives here: http://gitorious.org/+qt-maemo-developers/qt/qt-maemo

If you have a local clone you can use  to see a visual representation of the branches, commits and merges.

lbt proposed this explanation of the branches/workflow based on the Mer gitorious workflow

4.5
represents the latest core Qt branch for 4.5

bug-*
Representing potential bugs in Qt These branches hold fixes to specific bugs. The 4.5 branch will be merged into them to keep them up-to-date. If the bug is fixed upstream the branch will be deleted.

maemo-*
Representing features in various areas and branched from ?master? (I suggest this should be 4.5) Each branches adds only one feature-area. The ???(4.5) branch will be merged into them to keep them up-to-date. If the feature is adopted upstream the branch will be deleted. ?How are dependencies handled? eg if a maemo- feature uses a hw-feature?

master-maemo-qt-4.5
This branch is based on 4.5 and has all feature branches selected for maemo merged into it. Note that this branch is fairly plain Qt and should contains no packaging data and debian/* should not exist.

If an updates is made to 4.5 and 4.5 is merged into master-maemo-qt-4.5 then *all* conflicts with all feature/bug branches will be seen at once. To avoid this, 4.5 is merged into each bug/feature branch and conflicts resolved in focused feature areas. Now we need to merge the conflict-resolved features into master-maemo-qt-4.5. At this point it may seem reasonable to simply re-merge each feature branch into master-maemo-qt-4.5 however master-maemo-qt-4.5 contains all the other features from the last merge. So as soon as the first conflict-resolved feature is merged, all the conflicts from all the other features will be hit. The answer is to create a temporary local branch based on the latest 4.5 (see http://wiki.maemo.org/Mer/Build/UsingGitorious#Upstream_Updates) and merge each feature in turn into this branch. Then merge that into master-maemo-qt-4.5 (which should have no conflicts at all and, in the absence of any features/bugs is a simple fast-forward).

maemo-build-generic
This branch is based on and tracks ??(I suggest master-maemo-qt-4.5) It contains common packaging (ie debian/*) that allows Qt to build on various maemo-ish releases. A good rule is that no code is touched by non-merge commits to this branch It simply merges master-maemo-qt-4.5

maemo-build-diablo/qt-diablo
Branched from maemo-build-generic and modified with packaging/configuration specifically used for diablo Note that maemo-build-diablo is not merged back

maemo-build-fremantle/qt-fremantle
Branched from maemo-build-generic and modified with packaging/configuration specifically used for fremantle

maemo-build-mer/qt-mer
Branched from maemo-build-generic and modified with packaging/configuration specifically used for Mer

I don't see a need for both qt-diablo and maemo-build-diablo but :)