Bugzilla:Migrating to git: Difference between revisions

→‎Plan: a few more things have been accomplished
(→‎Plan: a few more things have been accomplished)
 
(14 intermediate revisions by 2 users not shown)
Line 1: Line 1:
It has been proposed to move the Bugzilla source from bzr.mozilla.org to git.mozilla.org with a read-only mirror on GitHub.
It has been proposed to use [http://git-scm.com/ Git] as Bugzilla's [http://en.wikipedia.org/wiki/Revision_control VCS] instead of [http://bazaar.canonical.com/ Bazaar], and move the Bugzilla source from bzr.mozilla.org to git.mozilla.org with a read-only mirror on GitHub.
 
The migration was completed successfully on 2014/03/11. git.mozilla.org currently contains the repositories of record for Bugzilla and related code.


== Rationale ==
== Rationale ==
Line 30: Line 32:


There are a bunch of things we'll need to do to complete this.  Some can be done in parallel.
There are a bunch of things we'll need to do to complete this.  Some can be done in parallel.
The tracking bug for the migrations is {{bug|929685}}.


Pre-migration:
Pre-migration:
Line 37: Line 41:
# ([[Bugzilla:Moving_From_Bazaar_To_Git|DONE]]) Write migration instructions similar to https://wiki.mozilla.org/Bugzilla:Moving_From_CVS_To_Bazaar
# ([[Bugzilla:Moving_From_Bazaar_To_Git|DONE]]) Write migration instructions similar to https://wiki.mozilla.org/Bugzilla:Moving_From_CVS_To_Bazaar
# (DONE, though see {{bug|967697}}) Set up repos (bugzilla and bmo) on git.mozilla.org.
# (DONE, though see {{bug|967697}}) Set up repos (bugzilla and bmo) on git.mozilla.org.
# (DONE) Determine which branches should be migrated over (presumably all, but there might be obsolete branches) and estimate how long this will take.
# (DONE, approx 1h15m) Determine which branches should be migrated over (presumably all, but there might be obsolete branches) and estimate how long this will take.
# Do a trial migration.
# (DONE) Do a trial migration.
# Announce date for migration.
# (DONE, 11 March 2014) Announce date for migration.


Migration:
Migration:


# Disallow commits to bzr aside from those originating from the git-to-bzr script.
# (DONE) Create git repos, restricting write access to just the account used for the migration.
# Perform fast-import/-export migration on all (supported) branches of bugzilla and bmo.
# (DONE) Disallow commits to bzr aside from those originating from the git-to-bzr script.
# Commit .gitrev to bzr containing the ID of the last git commit.
# (DONE) Perform fast-import/-export migration on all branches of bugzilla, bmo, and related repositories, excluding those listed in the section below, using the migrate.sh script.
# Enable git-to-bzr script (per branch).
# (DONE) Run git-to-bzr script once on all mirrored branches (see below) to initialize the .gitrev tracking file.
# Commit .gitignore file based on .bzrignore to git, and confirm that it has been mirrored.
# (DONE) Start running git-to-bzr periodically (every 5 minutes should be good).
# (DONE just for bugzilla/master so far) Commit .gitignore file based on .bzrignore to git (at least to supported/active repos/branches), and confirm that it has been mirrored.
# (DONE) Enable write access on all git repos for all authorized accounts.


Soon after:
Soon after:


# Set up repos on GitHub and configure git.m.o repos to mirror there.
# (DONE) Set up repos on GitHub and configure git.m.o repos to mirror there.
# Set up a travis-ci instance with a test migration to GitHub.  Note: someone out there has apparently done just this: https://travis-ci.org/dnozay/bugzilla
# (DONE) Set up a travis-ci instance with a test migration to GitHub.  Note: someone out there has apparently done this for the unit tests (https://travis-ci.org/dnozay/bugzilla); we still need support for the Selenium tests in the qa branches.


Eventually:
Eventually:


# Turn off tinderbox when we are sure that the test results from travis-ci and tinderbox match.
# (DONE) Turn off tinderbox when we are sure that the test results from travis-ci and tinderbox match.
# Turn off bzr ({{bug|967642}}).
# Turn off bzr ({{bug|967642}}).


Migration scripts are in a [https://github.com/markrcote/bugzilla-git-migration GitHub repo].
Migration scripts are in a [https://github.com/markrcote/bugzilla-git-migration GitHub repo].
If there are any problems during the migration, we'll abort and re-enable write access to bzr.mozilla.org as it was pre-migration.
We will mirror the following bzr branches from git.  There are three reasons to mirror: to support existing deployment scripts, to support existing bzr-based installations, and to have tinderbox continue to test commits until we switch to travis-ci.
For existing installations:
* bugzilla/4.0 (switch off after 5.0 is released, at which point we can also stop mirroring to cvs)
* bugzilla/4.2
* bugzilla/4.4
For tinderbox CI testing (switch off after travis-ci is set up for both packaged tests and qa tests) and deployment scripts:
* bugzilla/trunk
* bugzilla/qa/4.0
* bugzilla/qa/4.2
* bugzilla/qa/4.4
* bmo/4.2 (also needed until deployment scripts are updated, {{bug|973298}})
* bmo/4.2-dev (also needed until deployment scripts are updated, {{bug|973298}})
* bmo/qa/4.2


=== Mapping ===
=== Mapping ===
Confirmed users
1,927

edits