On 9/3/13 8:25 AM, Ehsan Akhgari wrote:
> Thanks for the update on this, John!  I have a number of questions about
> this:
> 
> 1. On the issue of the hg tags, can you please be more specific about the
> problem that you're encountering?  In my experience, git deals with updated
> tags the same way as it does with any non-fast-forward merge, and I've
> never experienced any problems with that.

I'm explicitly not converting most tags, and only whitelisting certain
ones to avoid the issue caused by moving tags.

To quote
https://www.kernel.org/pub/software/scm/git/docs/git-tag.html#_on_re_tagging
on moving git tags:

``Does this seem a bit complicated?  It should be. There is no way that
it would be correct to just "fix" it automatically. People need to know
that their tags might have been changed.''

We move tags regularly on hg repos; this is standard operating procedure
for a release build 2, or if a build 1 has an automation hiccup.  While
we *could* convert the tags automatically, then either never move them
or move them behind users' backs, users would then never get the updated
tags unless they explicitly delete and re-fetch the tag by name...
something people wouldn't typically do without prompting.  In my
opinion, tags pointing at the wrong revision are worse than no tags.

Also, I need to limit the tags pushed to gecko.git, as there is a hard
fastforward-only rule there, and notifying partners to delete and
recreate tags seems like a non-starter.  So I built in tag-limiting
whitelists for safety.

However, there appears to be an issue with the way I'm limiting tags.
Rather than delay things further, I decided to publish as-is and see if
anyone really cares about the tags, or if they would be fine using the
tip of each relbranch instead.

Since you bring up the point of tags, can you give examples of how you
use tags, or how you have seen others use tags?

> 2. How frequently are these branches updated?

The current job is running on a 5 minute cron job. We can, of course,
change that if needed. When I add a new repo or a slew of new branches
to convert, the job can take longer to complete, but it typically
finishes in about 6 minutes.

> 3. What are the plans for adding the rest of the branches that we currently
> have in https://github.com/mozilla/mozilla-central, an what is the process
> for developers to request their project branches to be added to the
> conversion jobs?  Right now the process is pretty light-weight (they
> usually just ping me on IRC or send me an email).  It would be nice if we
> kept that property.

There are two concerns here: Project branches are often reset, and also
individual developers care about different subsets of branches.

Providing a core set of branches that everyone uses, and which we can
safely support at scale, seems a good set to include by default. For
users of other branches, one approach we're looking at is to provide
supported documentation that shows developers how to add
any-branch-of-their-choice to their local repo. We're still figuring out
what this default set should be, and as you have clearly expressed
opinions on this in the past, we'd of course be interested in your
current opinions here.

> 4. About the interaction between gecko.git and beagle, when you say that
> they cannot be identical, are you talking about the location where they're
> hosted or the SHA1s for the same commits?  I think we need to guarantee the
> latter being identical going forward, but the former doesn't matter as much.

It's a requirement to keep the SHA1s the same, and we are confident we
can do that.
The location and naming for legacy b2g branches will be different, as
well as a hard fastforward-only rule on gecko.git.

> 5. Is the git-mapfile generated from the conversion scrips available
> somewhere?  (Mine is currently available here:
> http://git.mozilla.org/?p=users/eakhg...@mozilla.com/mozilla-history-tools.git;a=history;f=updates/git-mapfile;h=5c8ecf4bf1d7339ad1dff1ea4ab62a712da2fb6c;hb=HEAD
> )

I'm uploading this per run, but it's currently not going anywhere
publicly accessible.
We'll change the location of the upload to a public location before
signing off on this repo.

> 6. Do you have any plans for how we're going to approach the problem of
> migrating the current git mirror with beagle?  Specifically, I think we
> need to:
> a) Figure out how github deals with a repository being deleted/recreated,
> would that break people's forks, stars, etc.?
> b) Are there any alternative solutions in replacing all of the
> branches/tags under mozilla/mozilla-central with the new repo?
> c) What is the developer work flow going to look like in rebasing the local
> branches once the move has been completed?

This is a one time hit, but obviously, we want the least churn and
disruption possible. We're still putting that plan together, so all good
questions to add to the planning criteria.
First, lets get feedback that the test-beagle repos looks good and can
be signed off.

aki

(originals to end)

> Cheers,
> 
> --
> Ehsan
> <http://ehsanakhgari.org/>
> 
> 
> On Fri, Aug 30, 2013 at 9:29 PM, John O'Duinn <jodu...@mozilla.com> wrote:
> 
>> (cross-posting to make sure this is not missed; please respond in
>> dev-planning or bug#847727)
>>
>>
>>
>> tl,dr:  we're moving replication of gecko+gaia repos to more robust
>> systems.  This email gives quick status, and summary of rollout plan.
>>
>>
>>
>>
>> In the rush to B2G 1.0 release, we had to quickly stand up replication
>> systems to mirror changes from github to hg.m.o and to git.m.o. These
>> locally-patched systems replicate 368 repos, 24x7, and have carried us
>> a long way, but they are fragile to network/system hiccups, and tricky
>> to configure for new branches. Now that v1.0 has shipped, and we're
>> into more predictable development cadence, its time to switch to more
>> robust systems.
>>
>> Over  the last few months, we've been standing up new systems alongside
>> our  current production systems. On the new systems, we've been testing
>> newer  version of hg-git conversion by running our biggest, most
>> comprehensive  testdata we have - the entire cvs-history and hg-history
>> of  mozilla-central. When we hit problems that break the hg-git
>> conversion  tools, we upstreamed fixes to the hg-git tools. Being able
>> to process  all the edge-cases that Mozilla developers have thrown at
>> cvs and hg  since the start of Mozilla gives us confidence that these
>> scripts are  robust enough to use in production going forward.
>>
>> The curious can see the generated, fully converted repo, at
>> https://github.com/escapewindow/test-beagle. It's roughly equivalent to
>> https://github.com/mozilla/mozilla-central, but with SHAs that match
>> http://git.mozilla.org/?p=releases/gecko.git;a=summary .
>>
>> The "test-beagle" repo currently contains:
>> * mozilla-central with full CVS history
>> * mozilla-b2g18
>> * mozilla-b2g18_v1_1_0_hd
>> * mozilla-b2g18_v1_0_1
>> * mozilla-b2g18_v1_0_0
>> * mozilla-aurora
>> * mozilla-beta, with relbranches
>> * mozilla-release, with relbranches
>> * mozilla-esr17
>> * mozilla-inbound
>> * b2g-inbound
>> * fx-team
>>
>> If you see anything that looks wrong in this repo, please do let us know.
>>
>> Note:
>> 1) Do *not* use this for any production work or real development
>> work... not just yet. This repo is, as the name suggests, a test repo
>> that we reserve the right to reset at any point as/when we find problems.
>> 2) The branches to be included in this repo, and the final name and
>> location of the "test-beagle" repo, are still in flux. We're
>> considering having separate conversions of other repos that can be
>> pulled into local clones if desired. For more background, read the blog
>> post below for details.
>> 3) Note that these can not be identical repos due to partner
>> requirements for gecko.git; see the blog post below).
>> 4) All the release branches generated per release are present, but
>> currently no release tags. Moving tags is problematic in git; see the
>> blog post below for details.
>>
>>
>> Our rollout plan is to:
>> * enable "test-beagle" repo in mozilla account on github (using real
>> name of course!)
>> * replace/reset these repos on github
>> (https://github.com/mozilla/releases-mozilla-central,
>> https://github.com/mozilla/releases-mozilla-aurora,
>> https://github.com/mozilla/releases-mozilla-release) since they don't
>> have CVS history and have a different set of SHAs.  If they're unneeded
>> and we can nuke 'em, even better.
>> * switch over http://git.mozilla.org/?p=releases/gecko.git;a=summary
>> to be on these new scripts. As the SHAs are the same, this should be
>> invisible to Mozilla devs and partners using it, and should buy us
>> better stability.
>>
>> There's  plenty of other work after this deploy is completed (l10n,
>> bitbucket,  etc), but this is a big leap forward and exciting to see.
>>
>>
>> Hope all that makes sense - for more information, please see:
>> * the blog post http://escapewindow.dreamwidth.org/238476.html
>> * the bug https://bugzilla.mozilla.org/show_bug.cgi?id=847727
>>
>>
>>
>> Thanks
>> Aki, Hal and John.
>>
>> _______________________________________________
>> dev-platform mailing list
>> dev-platform@lists.mozilla.org
>> https://lists.mozilla.org/listinfo/dev-platform
>>
>>

_______________________________________________
dev-platform mailing list
dev-platform@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-platform

Reply via email to