Jean-Baptiste Queru
unread,Oct 11, 2012, 1:56:56 PM10/11/12Sign in to reply to author
Sign in to forward
You do not have permission to delete messages in this group
Either email addresses are anonymous for this group or you need the view member email addresses permission to view the original message
to android-...@googlegroups.com
I've received several questions about the best way to move changes
from 4.1.1 to 4.1.2. The situation is a little bit more complex than
usual, so I'll try to provide a longer explanation. If you maintain
private changes on top of 4.1.1 and want to move to 4.1.2, you'll
hopefully find this helpful:
-All the development for both 4.1.1 and 4.1.2 happened in the jb-dev
branch, at the same time. That is, Google engineers only made changes
for 4.1.1 and 4.1.2 in that branch.
-On July 3, jb-dev was fully merged into jb-release for the last time.
After that date, additional changes that were made for 4.1.1 got
cherry-picked from jb-dev into jb-release. That's why those builds are
called JRO03x (JR means jb-release, and O03 is the Android date code
for July 3 2012).
-On July 11, we created jb-mr0-release from the state of jb-release at
that time.
-On August 16, we built JRO03R, i.e. android-4.1.1_r6 (that's the
current head of jb-release in AOSP).
-On August 23, jb-dev was fully merged into jb-mr0-release for the
last time. After that date, additional changes that were made for
4.1.2 got cherry-picked from jb-dev to jb-mr0-release. That's why
those builds are called JZO54x (JZ means jb-mr0-release, and O54 is
the Android date code for August 23 2012).
-On October 2, we built JZO54K, i.e. android-4.1.2_r1 (that's the
current head of jb-mr0-release in AOSP).
-Because the development of 4.1.1 and 4.1.2 happened in the same
development branch, it was not possible to set a straight fast-forward
between those like I normally try to do between our release branches.
The raw data for that is in AOSP: in the build project, you can run
"gitk aosp/jb-release aosp/jb-mr0-release" and the shape of the
history indirectly tells the story.
When moving from 4.1.1 to 4.1.2, the following points are especially relevant:
-The commits in jb-release before July 11 all exist in jb-mr0-release.
-The commits in jb-release after July 11 were cherry-picked from
jb-dev before August 16. Those commits that are the result of
cherry-picks aren't in the ancestry of jb-mr0-release.
-All the commits in jb-dev before August 23 are in jb-mr0-release.
That includes the source commits of all the cherry-picks mentioned in
the previous point.
Putting those together, that means that there are no commits in
jb-release that don't also have equivalents in jb-mr0-release. In
turn, that means that you can safely run "repo forall -c git merge -s
ours android-4.1.1_r6" in a 4.1.2_r1 client. From there, subsequently,
you can safely run a plain git merge of any branch you've got that
originates from any of the 4.1.1 tags, which will merge your changes
over.
JBQ
--
Jean-Baptiste M. "JBQ" Queru
Technical Lead, Android Open Source Project, Google.
Questions sent directly to me that have no reason for being private
will likely get ignored or forwarded to a public forum with no further
warning.