Bugzilla:Migrating to git: Difference between revisions

→‎Plan: a few more things have been accomplished
(→‎Plan: a few more things have been accomplished)
 
(9 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 45: Line 47:
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.
# Create git repos, restricting write access to just the account used for the migration.
# (DONE) Disallow commits to bzr aside from those originating from the git-to-bzr script.
# Perform fast-import/-export migration on all (supported) branches of bugzilla and bmo.
# (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.
# Commit .gitrev to bzr containing the ID of the last git commit.
# (DONE) Run git-to-bzr script once on all mirrored branches (see below) to initialize the .gitrev tracking file.
# Enable git-to-bzr script (per branch, see below).
# (DONE) Start running git-to-bzr periodically (every 5 minutes should be good).
# Commit .gitignore file based on .bzrignore to git, and confirm that it has been mirrored.
# (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.
# Enable write access on all git repos for all authorized accounts.
# (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 this for the unit tests (https://travis-ci.org/dnozay/bugzilla); we still need support for the Selenium tests in the qa branches.
# (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].


We will mirror the following bzr branches from git.  There are two reasons to mirror: to support existing bzr-based installations, and to have tinderbox continue to test commits until we switch to travis-ci.
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:
For existing installations:
Line 72: Line 76:
* bugzilla/4.4
* bugzilla/4.4


For tinderbox CI testing (switch off after travis-ci is set up for both packaged tests and qa tests):
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/trunk
* bugzilla/qa/4.0
* bugzilla/qa/4.0
* bugzilla/qa/4.2
* bugzilla/qa/4.2
* bugzilla/qa/4.4
* bugzilla/qa/4.4
* bmo/4.2
* bmo/4.2 (also needed until deployment scripts are updated, {{bug|973298}})
* bmo/4.2-dev
* bmo/4.2-dev (also needed until deployment scripts are updated, {{bug|973298}})
* bmo/qa/4.2
* bmo/qa/4.2


Confirmed users
1,927

edits