70 likes | 214 Views
Unified Noah LSM Code Management Using CVS Mukul Tewari 1 , Mike Ek 2 , Kevin Manning 1 , Fei Chen 1 and Ken Mitchell 2 1 NCAR, Boulder, CO 2 NCEP/EMC, Camp Springs, MD. What is CVS?.
E N D
Unified Noah LSM Code Management Using CVS Mukul Tewari1, Mike Ek2, Kevin Manning1, Fei Chen1 and Ken Mitchell2 1NCAR, Boulder, CO 2NCEP/EMC, Camp Springs, MD
What is CVS? • The Concurrent Versions System (CVS), also known as the Concurrent Versioning System, is an open-source version control system • CVS keeps track of all work and all changes in a set of files • Allows several (potentially widely-separated) developers to collaborate • CVS has become popular in the open source software world
CVS in a Nutshell • CVS -- or Concurrent Versioning System -- is a system for managing simultaneous development of files. • CVS • stores files in a central repository • Files are accessible to all users • Commands are given to "check out" a copy of a file for development • And after the mods, "commit" changes back to the repository. • Provides version control • Keeps a log of changes
Typical Uses of CVS • cvs commit • In order to have access of a modified code by different users, the changes must be committed to the repository. • cvs checkout • The user/developer would have the most recent code, once he/she checks out the code from the repository. • cvs update • checks your working copies against the repository files and imports any changed files for you. • cvs add • Files CVS doesn't know what to do with are reported with a question mark after the commit process and during a cvs update. They need to be added to the repository before CVS will recognize them. • Use cvs add filename to mark a new file for inclusion. CVS doesn't put the file in the repository until you do a cvs commit. • Directories are added with the same command. Files within a directory can't be added until the directory is added. • cvs diff • Lists the differences between different versions of a file • Restrict Access • allow specific users (i.e. your developers) to write to the CVS repository. • IMPORTANT: DO NOT EDIT FILES IN THE REPOSITORY
Getting Started with CVS • $CVSROOT • setenv CVSROOT /d1/ekmich/Noah_unified_CVS • $ cvs init • $ cvs import –m “Initial Source” WRFV2 NCAR mt • Import Existing Code WRF code • cvs log (of module_sf_noahlsm.F) • ---------------------------- • revision 1.3 • date: 2006-08-11 22:25:30 +0000; author: ekmich; state: Exp; lines: +13 -5 • surface emissivity weighted by snow cover fraction • ---------------------------- • revision 1.2 • date: 2006-08-11 22:03:37 +0000; author: ekmich; state: Exp; lines: +30 -39 • EVAP, BETA calculations at the end of SFLX • ---------------------------- • revision 1.1 • date: 2006-08-11 17:47:05 +0000; author: ekmich; state: Exp; • branches: 1.1.1; • Initial revision • ---------------------------- • revision 1.1.1.1 • date: 2006-08-11 17:47:05 +0000; author: ekmich; state: Exp; lines: +0 -0 • Initial Source • =============================================================================
Getting Started with CVS (Contd.) • cvs diff –r 1.3 –r 1.2 module_sf_noahlsm.F • Index: module_sf_noahlsm.F • =================================================================== • RCS file: /d1/ekmich/Noah_unified_CVS/Noah_unified/Noah_unified/phys/module_sf_noahlsm.F,v • retrieving revision 1.3 • retrieving revision 1.2 • diff -r1.3 -r1.2 • 3624,3630c3624,3626 • < ! T12A = ( (FDOWN - FLX1 - FLX2 - SIGMA * T24)/ RCH & • < ! T12A = ( (FDOWN - FLX1 - FLX2 - EMISSI_S*SIGMA * T24)/ RCH & • < ! & + TH2 - SFCTMP - ETANRG/RCH ) / RR • < ! surface emissivity weighted by snow cover fraction (mek-aug2006) • < T12A = ( (FDOWN - FLX1 - FLX2 - & • < & ((SNCOVR*EMISSI_S)+EMISSI*(1.0-SNCOVR))*SIGMA *T24)/RCH & • < & + TH2 - SFCTMP - ETANRG/RCH ) / RR • --- • > ! T12A = ( (FDOWN - FLX1- FLX2- SIGMA * T24)/ RCH & • > T12A = ( (FDOWN - FLX1- FLX2- EMISSI_S*SIGMA * T24)/ RCH & • > & + TH2- SFCTMP - ETANRG / RCH ) / RR • 3708,3713c3704,3705 • < ! FLX3 = FDOWN - FLX1- FLX2- EMISSI_S*SIGMA * T14- SSOIL- SEH- & • < ! & ETANRG • < ! surface emissivity weighted by snow cover fraction (mek-aug2006) • < FLX3 = FDOWN - FLX1 - FLX2 - & • < ((SNCOVR*EMISSI_S)+EMISSI*(1-SNCOVR))*SIGMA*T14 - & • < SSOIL - SEH - ETANRG • --- • > FLX3 = FDOWN - FLX1- FLX2- EMISSI_S*SIGMA * T14- SSOIL- SEH- & • cvs commit
Limitations • Moving or renaming of files and directories are not versioned • No versioning of symbolic links • Source and Important sites: • http://www.linux.ie/articles/tutorials/cvs.php • http://www.cs.utah.edu/dept/old/texinfo/cvs/cvs_2.html • http://cvsbook.red-bean.com/OSDevWithCVS_3E.pdf