[[PageOutline]] = Updating Bugzilla = This page describes a process to update the Bugzilla instance running on [http://bugs.webkit.org/ bugs.webkit.org]. == Setup == * Install bzr, bzr-fastimport and bzr-svn. If you're using MacPorts: {{{ sudo port install bzr-fastimport sudo port install bzr-svn }}} * Install git and git-svn. If you're using MacPorts: {{{ sudo port install git-core +svn }}} * [https://wiki.mozilla.org/Bugzilla:Bzr Check out Bugzilla sources] from bzr. At minimum check out trunk, the branch that contains the current version used by bugs.webkit.org and the branch that you want to merge to. {{{ mkdir bzr cd bzr bzr co bzr://bzr.mozilla.org/bugzilla/trunk bugzilla-trunk bzr co bzr://bzr.mozilla.org/bugzilla/3.6 bugzilla-3.6 bzr co bzr://bzr.mozilla.org/bugzilla/3.4 bugzilla-3.4 bzr co bzr://bzr.mozilla.org/bugzilla/3.2 bugzilla-3.2 cd .. }}} * Import BugsSite from the WebKit repository into a local git repository. {{{ mkdir BugsSite.git cd BugsSite.git git svn init -T trunk/BugsSite http://svn.webkit.org/repository/webkit git svn fetch cd .. }}} * Create a local git repository to do the merge. {{{ mkdir bugzilla.git cd bugzilla.git git init }}} * Import the BugsSite.git repository: {{{ git remote add -f BugsSite ../BugsSite.git }}} * Import the Bugzilla branches from bzr: {{{ git bzr add bugzilla-trunk ../bzr/bugzilla-trunk git bzr add bugzilla-3.2-branch ../bzr/bugzilla-3.2 git bzr add bugzilla-3.4-branch ../bzr/bugzilla-3.4 git bzr add bugzilla-3.6-branch ../bzr/bugzilla-3.6 }}} NOTE: If you get an error about too many authors while importing, see [https://bugs.launchpad.net/bzr-fastimport/+bug/496677 Bug 496677]. * Create a .git/info/grafts file to provide artificial merge points between the two remote repositories. {{{ # BugsSite 3.2.3 merge has parents of BugsSite r45519 and bzr tag Bugzilla-3.2.3 4b974c2db64b5e85e72498b0c43100e2ea380a48 355650f88422025d80d5b5ca7f908d653936556e 780da003de2a006fefa6310f073e3c6be0281a6d }}} * Create a local git branch to track the BugsSite master branch. {{{ git branch --track master remotes/BugsSite/master }}} == Update == * Update bzr branches (if needed). {{{ (cd bzr/bugzilla-trunk && bzr update) (cd bzr/bugzilla-3.2 && bzr update) (cd bzr/bugzilla-3.4 && bzr update) (cd bzr/bugzilla-3.6 && bzr update) }}} * Update git mirror of BugsSite in svn. {{{ (cd BugsSite.git && git svn rebase) }}} * Update the merge repository. {{{ cd bugzilla.git git fetch BugsSite git bzr fetch bugzilla-trunk git bzr fetch bugzilla-3.2-branch git bzr fetch bugzilla-3.4-branch git bzr fetch bugzilla-3.6-branch }}} == Merge == * Create a patch of changes to custom template files. These custom template files will need to be updated and the patch merged after the Bugzilla merge. {{{ for F in `find template/en/custom -type f | grep -v review.html.tmpl | grep -v reviewform.html.tmpl`; do git diff HEAD:`echo $F | sed -e 's#/custom/#/default/#'` HEAD:$F; done > template-changes.diff }}} * Merge the new Bugzilla using a tag imported from bzr. {{{ git merge --squash --no-commit bugzilla-3.6.1 }}} * Clean up any conflicts when the merge is done. * Copy the updated default template files over the custom template files, then reapply the patch. {{{ # TBD }}} * Test the merged Bugzilla locally. {{{ ./checksetup.pl # TBD }}} * Schedule downtime for the update. * Do the update.