Version 13 (modified by, 15 years ago) (diff)


Updating Bugzilla

This page describes a process to update the Bugzilla instance running on


  • Check out Bugzilla sources from CVS (for reference).
        cvs -d "" 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\\:#cvsroot#mozilla#webtools#bugzilla
        mkdir bugzilla.git
        git cvsimport -d "" -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
        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 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\\:#cvsroot#mozilla#webtools#bugzilla
        git cvsimport -d "" -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 


  • 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.
        git merge --squash --no-commit BUGZILLA-3_4_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.
        # TBD
  • Schedule downtime for the update.
  • Do the update.