Log In | Users | Register
Edit | Attach | New | Raw | Diff | Print | | Tools
You are here: Data » DocTools » ToolsCtrl » CtrlSvn » SvnManag

How to manage the vendor and trunk parts of the SVN for COSMO?

The responsibles of the vendor and trunk parts of our SVN are the only persons concerned by this page!

URL means https://cosmo.cscs.ch hereafter.

Official releases

The COSMO official versions can be found on the ECMWF repository (see this page)

The CCLM official versions can be found on the CLM community website (http://clm.gkss.de/index.php?menuid=73, ! login required).

Naming conventions for Data versions

An additional number is added for the trunk_tags as compared to the vendor_tags. For a COSMO version in the trunk_tags/cosmo_c2sm, the version is a three part number cosmoX.Y.T. Please start with T=1. For a CCLM version in the trunk_tags/cclm_c2sm, the version is a three part number cclmX.Y_Z.U. Please start with U=1. We recommand you to add an additional number for the IPCC trunk_tags (cclmX.Y_Z.U.V) and opr trunk_tags (cosmoX.Y.T.W).

First import of the vendor version

Use the following message when doing your commit: "Import official COSMO version X.Y into the vendor" or "Import official CCLM version X.Y_Z into the vendor" or "Import official INT2LM version X.Y into the vendor" or "Import official libgrib1 version X.Y into the vendor".

  • COSMO:
    1. svn delete URL/cosmo/vendor/cosmo
    2. svn import new_code URL/cosmo/vendor/cosmo
    3. svn co URL/cosmo/vendor/cosmo cosmo_vendor_wc
    4. cd cosmo_vendor_wc/src/
    5. svn propset svn:keywords "Revision Date" *
    6. cd ../
    7. svn status
    8. svn ci (Use this message "Add properties to official COSMO version X.Y into the vendor")
    9. cd ../ followed by rm -rf cosmo_vendor_wc

  • CCLM:
    1. svn delete URL/cosmo/vendor/cclm
    2. svn import new_code URL/cosmo/vendor/cclm
    3. svn co URL/cosmo/vendor/cclm cclm_vendor_wc
    4. cd cclm_vendor_wc/src/
    5. svn propset svn:keywords "Revision Date" *
    6. cd ../
    7. svn status
    8. svn ci (Use this message "Add properties to official CCLM version X.Y_Z into the vendor")
    9. cd ../ followed by rm -rf cosmo_vendor_wc

Remark : The new_code originating from the CLM community home page contains a lot of files and folders that should not be imported into the repository (executable, DOCS/*.htm, obj/*, orig, work, work_11hj). Remove them before checking in. Furthermore the permissions on the files are usually not set properly. Please change them (644 for all files, 755 for all directories). Check also that there is not two times the same file (e.g. lmorg.F90 and lmorg.f90).

  • Int2lm: similar
  • Grib library: similar

Tag of a vendor version

Use the following message when taging your version: "Tag official COSMO version X.Y into the vendor_tags", "Tag official CCLM version X.Y_Z into the vendor_tags", "Tag official INT2LM version X.Y into the vendor_tags", "Tag official libgrib1 version DATE into the vendor_tags".

  • COSMO: svn cp URL/cosmo/vendor/cosmo URL/cosmo/vendor_tags/cosmo/cosmoX.Y
  • CCLM: svn cp URL/cosmo/vendor/cclm URL/cosmo/vendor_tags/cclm/cclmX.Y_Z
  • Int2lm: svn cp URL/int2lm/vendor/ URL/int2lm/vendor_tags/int2lmX.Y
  • Grib library: svn cp URL/libgrib1/vendor/ URL/libgrib1/vendor_tags/libgrib1_DATE

Further imports of vendor versions

Use the same message as for the first import of the vendor version.

  • COSMO:
    1. svn co URL/cosmo/vendor/cosmo cosmo_vendor_wc
    2. replacement of the content of cosmo_vendor_wc by the new vendor version (! don't delete the .svn folder present in your wc)
    3. cd cosmo_vendor_wc
    4. svn status
    5. svn rename or svn add or svn delete if necessary ( !!! use these commands only if really needed --> tracability problems )
    6. svn status
    7. cd src
    8. svn propset svn:keywords "Revision Date" *
    9. cd ../
    10. svn ci
    11. cd ../ followed by rm -rf cosmo_vendor_wc

  • CCLM:
    1. svn co URL/cosmo/vendor/cclm cclm_vendor_wc
    2. replacement of the content of cclm_vendor_wc by the new vendor version (! don't delete the .svn folder present in your wc)
    3. cd cclm_vendor_wc
    4. svn status
    5. svn rename or svn add or svn delete if necessary ( !!! use these commands only if really needed --> tracability problems )
    6. svn status
    7. cd src
    8. svn propset svn:keywords "Revision Date" *
    9. cd ../
    10. svn ci"
    11. cd ../ followed by rm -rf cclm_vendor_wc

Same remark as for first import

  • Int2lm: similar
  • Grib library: similar

First import of the trunk version

Use the following message when doing your commit: "Import Data COSMO version X.Y.T into the trunk", "Import Data CCLM version X.Y_Z.U into the trunk", "Import C2SM INT2LM version X.Y.V into the trunk" and so on.

  • COSMO:
    1. svn delete URL/cosmo/trunk/cosmo_c2sm
    2. svn cp URL/cosmo/vendor_tags/cosmo/cosmoX.Y URL/cosmo/trunk/cosmo_c2sm/ (Use this message "Create cosmo_c2sm trunk")
    3. svn co URL/cosmo/trunk/cosmo_c2sm/ cosmo_c2sm_wc
    4. Adapt the compilation options for CSCS machines, replace the makefile, compile (also with debug options), test, be sure to only have .f90 files, make sure normals files have permissions to 644 and folders have them to 755, etc. (! don't delete the .svn folder)
    5. svn status
    6. svn ci
    7. cd ../ followed by rm -rf cosmo_c2sm_wc

  • CCLM:
    1. svn delete URL/cosmo/trunk/cclm_c2sm
    2. svn cp URL/cosmo/vendor_tags/cclm/cclmX.Y_Z URL/cosmo/trunk/cclm_c2sm/ (Use this message "Create cclm_c2sm trunk")
    3. svn co URL/cosmo/trunk/cclm_c2sm/ cclm_c2sm_wc
    4. Adapt the compilation options for CSCS machines, replace the makefile, compile (also with debug options), test, be sure to only have .f90 files, etc. (! don't delete the .svn folder)
    5. svn status
    6. svn ci
    7. cd ../ followed by rm -rf cclm_c2sm_wc

  • Int2lm: similar
  • Grib library: similar

Tag of a trunk version

  • COSMO: svn cp URL/cosmo/trunk/cosmo_c2sm URL/cosmo/trunk_tags/cosmo_c2sm/cosmoX.Y.T -m "Tag Data COSMO version X.Y.T into the trunk_tags"
  • CCLM: svn cp URL/cosmo/trunk/cclm_c2sm URL/cosmo/trunk_tags/cclm_c2sm/cclmX.Y_Z.U -m "Tag Data CCLM version X.Y_Z.U into the trunk_tags"
  • Int2lm: svn cp URL/int2lm/trunk/int2lm_c2sm URL/int2lm/trunk_tags/int2lm_c2sm/int2lmX.Y.V -m "Tag C2SM INT2LM version X.Y.V into the trunk_tags"
  • Grib library: svn cp URL/libgrib1/trunk/ URL/libgrib1/trunk_tags/libgrib1_X.Y -m "Tag Data libgrib1 version X.Y into the trunk_tag"

Further imports of trunk versions

Use the same message as for the first import of the trunk version.

  • COSMO:
    1. svn co URL/cosmo/trunk/cosmo_c2sm cosmo_c2sm_wc
    2. svn merge URL/cosmo/vendor_tags/cosmo/cosmoX.Yold/src URL/cosmo/vendor_tags/cosmo/cosmoX.Ynew/src cosmo_c2sm_wc/src (if you get some tree conflicts, the merge is not performed. In this case, use the same command but add the option --force)
    3. Resolve the conflicts if needed. If you encounter some tree conflcits again, use svn resolve --accept=working src/file1 .
    4. Check that the merge gives you the expected results (i.e. the Data amendements (bug fixes) into the new official version --> diff new official version - merge = Data amendements only)
    5. Compile, test, etc.
    6. svn status
    7. svn ci
    8. cd ../ followed by rm -rf cosmo_c2sm_wc

  • CCLM:
    1. svn co URL/cosmo/trunk/cclm_c2sm cclm_c2sm_wc
    2. svn merge URL/cosmo/vendor_tags/cclm/cclmX.Y_Zold/src URL/cosmo/vendor_tags/cclm/cclmX.Y_Znew/src cclm_c2sm_wc/src (if you get some tree conflicts, the merge is not performed. In this case, use the same command but add the option --force)
    3. Resolve the conflicts if needed. If you encounter some tree conflcits again, use svn resolve --accept=working src/file1 .
    4. Check that the merge gives you the expected results (i.e. the Data amendements (bug fixes) into the new official version --> diff new official version - merge = Data amendements only)
    5. Check some stuff (see below for more details) and check if new bug fixes have been made in COSMO NWP trunk, ...
    6. Compile, test, etc.
    7. svn status
    8. svn ci
    9. cd ../ followed by rm -rf cclm_c2sm_wc

  • Int2lm: similar
  • Grib library: similar

Special stuff to check for a new CCLM Data trunk

  • Check that the IFS lib has not changed between the 2 vendor versions
  • Update the compiling environment (Options file, Makefile, etc.) according to the COSMO trunk as far as possible
  • Update the doc misc.global if needed
  • Update the doc from the CLM community
  • Update the Data doc if needed
  • Update the README if needed
  • Update the compile.sh script if needed
  • Check if the Do_info or if the gen_info.sh is needed
  • Check that the Objfile is up-to-date
  • Check that the merged bug fixes are still needed
  • Check if COSMO has made new bug fixes in between
spacer
This site is managed by the Center for Climate Systems Modeling (C2SM).
This site is powered by FoswikiCopyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors. Ideas, requests, problems? Send feedback!