1 / 17

Source Code Revision Control Software

CVS and Subversion (svn). Source Code Revision Control Software. Would these tools be useful for Noah development efforts?. Why use revision control software?. Concurrent development for multiple users working from a single source-code base History (logging; revert to older versions)

bessie
Download Presentation

Source Code Revision Control Software

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. CVS and Subversion (svn) Source Code Revision Control Software

  2. Would these tools be useful for Noah development efforts?

  3. Why use revision control software? • Concurrent development for multiple users working from a single source-code base • History (logging; revert to older versions) • Tagging (version identification) • Branching (merging) • Archive (just archive the repository)

  4. Caveats • Revision control software is not a replacement for: • Developer communication, cooperation • Code development project management • Good habits on the part of code developers • Meaningful log entries (change logs) • Code development habits

  5. Typical use • Checkout code from the central repository • Do your work • make your modifications • possibly add source-code files • do your testing • etc. • Commit your changes to the central repository • Include a mandatory log entry describing your changes

  6. More typical use • Update your working code to include changes that others have comitted • Merge conflicting changes • Export code for release • Tag a specific snapshot of the code (i.e., a named version for release)

  7. More typical use • View file history, change logs • Make branches for more independent development • Merge branches back into main code base

  8. CVS or Subversion? • At the level for basic usage, they are very similar • The goal of the Subversion project was to make a near-lookalike replacement for CVS users

  9. Similarities • Similar workflow, similar user commands • (Though I found branching and tags seemed to make a lot more sense in Subversion) • Each has readable, useful users’ guides online • Each has a wide user base • Used by many high-profile projects • Actively maintained • Open source

  10. Reasons to choose Subversion for Noah development? • SVN has a newer code base than CVS • Advantage? Disadvantage? • SVN seems to have more active development • Advantage? Disadvantage? • SVN has better file renaming capabilities • SVN handles symbolic links • SVN used at NCAR for WRF development, at NCEP for NMM development • SVN seems to have more sensible tags and branches

  11. Reasons to choose CVS for Noah development? • Long history • RAL has a central CVS repository • There has been talk of having a central RAL Subversion repository • Would Noah development take advantage of RAL central repository?

  12. CVS or Subversion? • More important question: • Would software version control through some central repository be useful for Noah LSM development

  13. Discussion points • Would such tools be useful for Noah development efforts? • Are the Noah development efforts coordinated enough to make use of a centralized, single, repository? • Multiple institutions (firewall issues?) • Divergent interests and development directions • Would Noah development be better suited by each group maintaining independent code? • Periodic merging efforts to produce a new “unified” release • Then every group starts again with their own development from that common release • Each group responsible for its own code maintenance strategies

  14. Online Documentation • Subversion • http://svnbook.red-bean.com • CVS • http://cvsbook.red-bean.com • http://ximbiot.com/cvs/manual

  15. Differences (at the user level) • Revision numbers • CVS version numbers apply to files • Subversion version numbers apply to the repository • Directory versioning • CVS does not apply revision numbers to directories • Subversion revision numbers apply to the repository, and so to any directories in the repository • Branches and tags • Subversion branches and tags are simply copies of the repository filesystem • CVS branches and tags get complicated • Properties • Subversion allows arbitrary metadata tags to be applied to files

  16. Release 1.0 Release 2.0

  17. Release 1.0 Release 2.0 Concerted merge effort

More Related