wiki:UpdatingBugzilla

Version 13 (modified by ddkilzer@apple.com, 12 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.
        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.
        ./checksetup.pl
        # TBD
    
  • Schedule downtime for the update.
  • Do the update.