Closed Bug 643007 Opened 13 years ago Closed 13 years ago

Move mobile-browser code into mozilla-central/mobile

Categories

(Firefox for Android Graveyard :: General, defect)

defect
Not set
normal

Tracking

(Not tracked)

RESOLVED FIXED

People

(Reporter: cjones, Assigned: mozilla)

References

Details

Attachments

(1 file)

This bug covers the actual hg gymnastics needed to move the code.  I'm not sure what releng/l10n work is needed to accommodate this change; Aki/Axel/others who do, would you find filing those bugs?

It would be nice to import the mobile-browser history into mozilla-central.  But, it would be very annoying to have those changesets inline for bisects, because the vast majority of the intermediate revisions would be broken and a waste of bisect time.  We can always fall back on the simple solution of just importing a snapshot of mobile-browser into mozilla-central/mobile and keeping a clone of current mobile-browser around for history.

So, anyone know (CC'd some folks who've demonstrated hg-fu in the past) a way to import mobile-browser while keeping its history but not forcing bisects to go over that history?  It seems like it might be possible in theory with some sequence of branches/merges, but I don't know how off-hand.
cc' sayre for hg-fu
On the mercurial side of things, I guess we can do something like this:

1. Convert a clone of mobile-browser into a repository which renames * to mobile/* (using the hg convert extension).
2. hg pull -f from that repo to mozilla-central.
3. hg merge to get a single head again.
4. hg push to mozilla-central.

That should preserve the full history of the mobile repository.
I'm still not totally sure we want to do this -- we should chat about this more offline
I strongly think this should be done, *but* it will take a non-trivial amount of effort to make sure existing mobile automation works with a single repo.

So:

a) make a decision
b) if we decide to merge in, releng will need to create a user repo with m-c+m-b and make sure all relevant automation works against that.
c) switch over at some scheduled date afterwards
Because I want to see this happen, I wrote this.  This script was used to create http://hg.mozilla.org/users/jford_mozilla.com/mozilla-mobile-merged

This script saves history from the default branch [1], though, changeset identifiers are changed.  Branches and tags aren't imported.  Branches might be able to be saved by using --branchmap from hg convert to rename each relbranch in mobile-browser to something like MB_$rebranchname then merging the two branches together once pulled into mozilla-central.  I don't know how tags could be salvaged.  I think that keeping the separate repository for releases completed up to and including the last split repository release is the best way forward.

After running this script, there is a "mobile" branch that hasn't been touched since 2008 [2].  Was this an in-repo branch of mozilla-central?  Anyway, I don't know how to remove it using this script.  I pushed with hg push --new-branch ... to get something up on hg.m.o.

In the script, there is a test that shows that no real files on the default branch change because of these transformations.  There is also a mozilla-central/mobile/.hgignore file.  This file is harmless, containing what looks to be older versions of mozilla-central's .hgignore file.

This script tags a couple revisions.  There is a dated and non-dated version of all tags added
-PRE_MOBILE_MERGE on the last pre-merge mozilla-central revision
-MOBILE_MERGE_DONE on the tip of the hg merge operation that results in a merged mozilla-central and mobile-browser

Let me know what you think!

[1] http://hg.mozilla.org/users/jford_mozilla.com/mozilla-mobile-merged/annotate/819128b8c388/mobile/app/mobile.js
[2] http://hg.mozilla.org/mobile-browser/log/mobile
(In reply to comment #6)
> This script saves history from the default branch [1], though, changeset
> identifiers are changed.  Branches and tags aren't imported.  Branches might be
> able to be saved by using --branchmap from hg convert to rename each relbranch
> in mobile-browser to something like MB_$rebranchname then merging the two
> branches together once pulled into mozilla-central.  I don't know how tags
> could be salvaged.  I think that keeping the separate repository for releases
> completed up to and including the last split repository release is the best way
> forward.

Worse comes to worse, you could write a script to read the shamap file after conversion, and create tags in the target repo matching the changeset of the source repo.

> After running this script, there is a "mobile" branch that hasn't been touched
> since 2008 [2].  Was this an in-repo branch of mozilla-central?  Anyway, I
> don't know how to remove it using this script.  I pushed with hg push
> --new-branch ... to get something up on hg.m.o.

You can use the branchmap file to rename it to default, I think.
(In reply to comment #3)
> I'm still not totally sure we want to do this -- we should chat about this more
> offline

Has this discussion happened?  Any objections raised?
Depends on: 644202
discussed at today's mobile engineering meeting.  we agreed to move forward with this.
I'm fine with moving ahead here -- this needs to be coordinated with release engineering before we do it
We're looking green after nightlies and a lot of depend build clobbering.

I'll post a newsgroup + blog post. Please file followup bugs for anything that needs attention.

Marking FIXED.
Assignee: nobody → aki
Status: NEW → RESOLVED
Closed: 13 years ago
Resolution: --- → FIXED
Comment on attachment 520490 [details]
script to move mobile-browser to mozilla-central/mobile

for reference the hgtags bit should have been done as part of the filemap:

http://mercurial.selenic.com/wiki/ConvertExtension#A--filemap
exclude .hgtags
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: