Updating a Baselibs Component
Process of Importing A New Component to Baselibs
1. In a temporary directory (ImportCheckout) checkout:
$ bcvs co Baselibs
2. Move into checkout:
$ cd Baselibs/src
3. Tag current state:
$ bcvs tag -r GMAO-Baselibs-3_3_0 Internal-3_3_1-before-NCO-4_2_3
3b. Untag Internal-3_3_1 (just in case)
$ bcvs tag -d Internal-3_3_1
NCO 4.2.3
4. Move to /gpfsm/dswdev/mathomp4/Baselibs/NewImports
$ cd /gpfsm/dswdev/mathomp4/Baselibs/NewImports
a. Untar nco-4.2.3.tar.gz (from http://nco.sourceforge.net/#Source)
$ tar xzf nco-4.2.3.tar.gz
b. Move into netcdf directory:
$ cd nco-4.2.3/
c. Test import netcdf package
$ bcvs -nq import -kk -m 'MAT: import NCO 4.2.3 retrieved 2012-NOV-13 from http://nco.sourceforge.net/#Source' Baselibs/src/nco NCO release-4_2_3
d. Really import the package
$ bcvs import -kk -m 'MAT: import NCO 4.2.3 retrieved 2012-NOV-13 from http://nco.sourceforge.net/#Source' Baselibs/src/nco NCO release-4_2_3
39 conflicts created by this import. Use the following command to help the merge:
cvs -d :ext:mathomp4@progressdirect:/cvsroot/baselibs checkout -j<prev_rel_tag> -jrelease-4_2_3 Baselibs/src/nco
e. Check out model anew
$ cd /discover/swdev/mathomp4/Baselibs $ mkdir NewBaselibs $ cd NewBaselibs $ bcvs co -kk Baselibs/src <snip checkout> $ bcvs -q checkout -kk Baselibs/src/nco
f. Update to new release
$ bcvs -nq update -kk -jrel-4_0_3-20100627 -jrelease-4_2_3 Baselibs/src/nco
(remove -nq and run again once satisfied)
g. Move into nco
$ cd Baselibs/src/nco
h. Check for conflicts
$ bcvs -nq upd -kk | grep -r '^[C|M]'TmpBaselibs
cvs update: New directory `autom4te.cache' -- ignored cvs update: New directory `debian' -- ignored cvs update: New directory `src/nco++/.deps' -- ignored M doc/ANNOUNCE M doc/ChangeLog M doc/MANIFEST M doc/Makefile.in M doc/README M doc/TODO M doc/VERSION M doc/debian.txt M doc/i18n.txt M doc/index.shtml M doc/man_end.txt M doc/nco.dvi M doc/nco.html M doc/nco.info M doc/nco.pdf M doc/nco.ps M doc/nco.texi M doc/nco.txt M doc/nco.xml M doc/nco_news.shtml M doc/nco_src_frg.txt M doc/opendap.sh M man/Makefile.in M man/ncap.1 M man/ncap2.1 M man/ncatted.1 M man/ncbo.1 M man/ncdiff.1 M man/ncea.1 M man/ncecat.1 M man/ncflint.1 M man/ncks.1 M man/nco.1 M man/ncpdq.1 M man/ncra.1 M man/ncrcat.1 M man/ncrename.1 M man/ncwa.1
i. Fix conflicts
No conflicts found.
j. Commit changes
$ bcvs commit -m "MAT: merge new NCO release 4.2.3, no conflicts found"
5. Tag new release at src level
$ cd .. $ bcvs tag -r GMAO-Baselibs-3_3_0 Internal-3_3_1
6. UNTAG nco and retag the new vendor release
$ cd nco/ $ bcvs tag -d Internal-3_3_1 $ bcvs tag -r release-4_2_3 Internal-3_3_1
7. Edit Changelog and VERSION and commit
8. Push tag on new files
$ bcvs tag -F Internal-3_3_1 ChangeLog INSTALL VERSION
11. Checkout new tag and build
a. Try doing a cvscmp to the "before" tag. Make sure the difference looks okay
12. If all works, delete the "before" tag
13. If all *really* works, rename Internal-3_3_1 to GMAO-Baselibs-3_3_1