[Development] Android: Merge or no merge?
Eskil Abrahamsen Blomfeldt
eskil.abrahamsen-blomfeldt at digia.com
Mon Feb 11 17:15:45 CET 2013
Hi,
We have a disagreement on how to integrate the Android port into Qt
which we need to get resolved.
Here's the discussion:
https://codereview.qt-project.org/#change,47480
tl;dr: Should we merge or rebase the Android branch when integrating it
into Qt mainline?
The main issue originates from the fact that Necessitas was integrated
as one large, atomic commit.
Our plan to minimize the effect of this was to
1. Create separate patches for the non-Android-specific parts of that
change, and commit these separately to dev ahead of time. (In progress)
2. Collect feedback on the total diff of the branch using Paul's large
squashed commit and fix the issues as they are brought up. (In progress)
3. Do a merge which retains the blame-history of the changes that were
already committed to dev, so that the only parts which will show up as
the large initial commit in a git blame are the lines which are
Android-specific and which have not been disputed and therefore altered.
This way we keep the SHA1s which are already linked to tasks in Jira and
we have the full history of the Android port at least back to the point
where Necessitas was integrated in Qt 5 (kind of like the initial Qt 5
commit, but for the Android port.)
However, there was some disagreement about whether this was acceptable
or whether the branch should be rebased on top of dev instead.
The problems:
1. The initial commit does not have a review-stamp. The only way to get
around this would be to rebase and rewrite the commit to include my
review, or to post the commit itself to dev ahead of time and then merge
on top of that, which would break the rule of only committing finished
features.
2. There is clutter in the commit log, i.e. changes that change code
style and whitespace errors.
In my opinion, the amount of history we submit seems like a luxury
problem. I would very much like to be able to track the development of
the Android branch after merging it, so in my opinion having the history
intact is nice, even if they are not interesting to everyone. One of the
major history-based problems in the Qt 4 days was that we would squash
together commits from topic branches and lose the history in those branches.
Squashing the "clutter" commits and rewriting the entire history is a
lot of work, and I fear it will jeopardize our chances of meeting the Qt
5.1 deadline. Since it only serves to remove information and history and
would take up too much valuable time, it does not seem justifiable to
me. Since we did get reviews for all changes except the initial one, the
idea was that we would not have to do this kind of history rewrite later.
A compromise would be to rebase on top of dev, review the initial
commit, and then rebase the rest of the branch on top of this. This
would break the references in Jira tasks, though, so personally I'd
prefer not to do this. I also wonder how it's achieved technically,
since most of the changes have been reviewed already and therefore do
not need additional reviews, but I'm sure this is not a huge problem.
So what do you think?
-- Eskil
More information about the Development
mailing list