Version 12 (modified by 16 years ago) ( diff ) | ,
---|
Updating Bugzilla
This page describes a process to update the Bugzilla instance running on bugs.webkit.org.
Setup
- Check out Bugzilla sources from CVS (for reference).
cvs -d ":pserver:anonymous@cvs-mirror.mozilla.org:/cvsroot" co -d bugzilla.cvs mozilla/webtools/bugzilla
- Import original Bugzilla sources from CVS into a local git repository (may take a couple of hours).
rm -f ~/.cvsps/\:pserver\:anonymous@cvs-mirror.mozilla.org\:#cvsroot#mozilla#webtools#bugzilla mkdir bugzilla.git git cvsimport -d ":pserver:anonymous@cvs-mirror.mozilla.org:/cvsroot" -C bugzilla.git -k mozilla/webtools/bugzilla
- 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
- Create a local git repository to do the merge.
mkdir update.git cd update.git git init git remote add -f origin-bugssite ../bugssite.git git remote add -f origin-bugzilla ../bugzilla.git
- Create a .git/info/grafts file to provide artificial merge points between the two remote repositories. NOTE: Your commit hashes may be different for tagged Bugzilla versions since git-cvsimport is not an exact science.
# BugsSite 3.2.3 merge has parents of & CVS tag BUGZILLA-3_2_3 4b974c2db64b5e85e72498b0c43100e2ea380a48 213407d24e23561c65916e86ae186f154b086dde # BugsSite 3.0.3 merge has parents of & CVS tag BUGZILLA-3_0_3 355650f88422025d80d5b5ca7f908d653936556e bd31477381aa6204bd5e8ed5997354ccf12b6794 # BugsSite r30048 has parents of CVS tag BUGZILLA-2_20_1 92fb2f653ac5b1b4dc9e0ec6d4a3806fe7ea1e2a ba0b747bbab5807857e66e7ff8583d27f1625fa1
- Create a local git branch to track the BugsSite master branch.
git branch --track master remotes/origin-bugssite/master
Update
- Update CVS directory (if needed).
cd bugzilla.cvs cvs -q update -d -P -A
- Update Git mirror of BugsSite in svn.
cd bugssite.git git svn rebase
- Update Git mirror of Bugzilla in CVS. (Removing the cvsps cache file forces git-cvsimport to regenerate it each time.)
rm -f ~/.cvsps/\:pserver\:anonymous@cvs-mirror.mozilla.org\:#cvsroot#mozilla#webtools#bugzilla git cvsimport -d ":pserver:anonymous@cvs-mirror.mozilla.org:/cvsroot" -C bugzilla.git -k mozilla/webtools/bugzilla
- Update the merge repository.
cd update.git git fetch origin-bugssite git fetch origin-bugzilla git checkout master git pull
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. Clean up any conflicts when the merge is done.
git merge --squash --no-commit BUGZILLA-3_4_1
- 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.
Note:
See TracWiki
for help on using the wiki.