Here’s the steps I take in order to update my site from the latest OpenACS CVS. All of this info comes from Andrew Piskorski’s great CVS page or from pages listed in his document.
Make sure that I’ve committed all the local changes that I’ve made.
vinod:~$ cd web/kurup vinod:~/web/kurup$ cvs commit -m “Fixed foo, bar and blah”
Go into the directory containing my OpenACS CVS checkout and grab the latest sources. I’m using the
oacs-4-6branch.vinod:~/web/kurup$ cd ~/web/openacs-4 vinod:~/web/openacs-4$ cvs update -r oacs-4-6
Import the code into a vendor branch. My repository name is
kurup.OpenACSis the vendor tag.vinod:~/web/openacs-4$ cvs -d /var/lib/cvs \
import -m "importing latest OpenACS 4.6 branch" \ kurup OpenACS openacs-4-6-3-20030719This produces the usual CVS scroll and then a message like this:
7 conflicts created by this import. Use the following command to help the merge: cvs -d /var/lib/cvs checkout -j<prev_rel_tag> \ jopenacs-4-6-3-20030719 kurup
Follow the instructions just given above. This will checkout a full set of code into the
kurupdirectory, while simultaneously merging the new imported code in.vinod@vkurup:~/web/openacs-4$ cd vinod@vkurup:~$ mkdir tmp vinod@vkurup:~$ cd tmp vinod@vkurup:~/tmp$ cvs -d /var/lib/cvs checkout \
-jOpenACS:yesterday \ jopenacs-4-6-3-20030719 kurupGo through and fix all the conflicts. This is the part that I sometimes find confusing. How to find the files that have conflicts? The command in instruction #3 above will list conflict files with a C in front of the filename. Check each file that has a C in front of it. This is why I like to do this process inside an emacs shell, so that I can look over the output as needed. For example, one piece of my listing looked like this:
U kurup/packages/lars-blogger/www/blog-oracle.xql U kurup/packages/lars-blogger/www/blog.adp C kurup/packages/lars-blogger/www/blog.tcl U kurup/packages/lars-blogger/www/calendar-oracle.xql
So, I need to check ~/tmp/kurup/packages/lars-blogger/www/blog.tcl, look for conflict markers and resolve any conflicts. Do this for every file marked ‘C’ in your listing.
Commit my work.
vinod:~/tmp$ cd kurup vinod:~/tmp/kurup$ cvs commit \
-m "merged with openacs-4-6-3-20030719, conflicts resolved"Blow away that tmp checkout
vinod:~/tmp/kurup$ cd vinod:~$ rm -r tmp
Update my local checkout
vinod:~$ cd web/kurup vinod:~/web/kurup$ cvs update
Restart my server.
vinod:~$ svc -t /service/master
Once the server is back up, I visit
http://kurup.org/acs-admin/apmwith my broswer and click on ‘Install Packages’. I look for any packages that are listed as ‘Upgrade’. Click on these packages and follow the instructions to perform any needed upgrades. This is always a touchy process because if the upgrade script errors out, your server may be left in an in-between state. Hope and pray liberally.Repeat as needed, maybe monthly, or whenever there’s a new feature/bugfix available that you need.