New URL for NEMO forge!   http://forge.nemo-ocean.eu

Since March 2022 along with NEMO 4.2 release, the code development moved to a self-hosted GitLab.
This present forge is now archived and remained online for history.
Developers/SVN_QuickReference – NEMO
wiki:Developers/SVN_QuickReference

Version 38 (modified by nicolasmartin, 6 years ago) (diff)

--

SubVersioN basics

Last edited at Wikinfo(changed_ts)? by Wikinfo(changed_by)?

Error: Failed to load processor box
No macro or processor named 'box' found

Branching

Create a branch

For development branches, we tend to add one level of subdirectory corresponding to the current year, and an additional item in the name corresponding to the work-plan. For instance

svn copy trunk branches/'Current_year'/'Name_of_the_new_branch'

For branch naming conventions, see Developers/DevelopingCodeChanges.

Switch to the trunk (hazardous)

Your working copy was based on a given branch which has been moved to the trunk (conflicts unavoidable and pretty complicated to resolve).

svn switch http://forge.ipsl.jussieu.fr/nemo/svn/NEMO/trunk

Delete a branch

svn del 'Path/to/the/branch/to/delete'

Manage versioned items (file / folder)

Add a new NEMO routine

Use the template from NEMO/trunk/src/OCE/module_example

svn copy trunk/src/OCE/module_example branches/'Current_year'/'dev_branch'/'path/to/the'/new_routine.f90

If the svn:keywords property is not defined, don't forget to set it in order to get the functionality of $Id keyword replacement with the commit informations

svn pset svn:keywords Id 'path/to/the'/new_routine.f90

Add a new file / Remove a file

svn add 
svn del 

Update file between branches

Suppose the downloaded NEMO directory corresponds to the tag nemo_v3 (i.e. from http://forge.ipsl.jussieu.fr/nemo/svn/tags/nemo_v3/NEMO); the current revision number of the file sbcssm.F90 is 1196. To get the new revision (which has been committed on the trunk http://forge.ipsl.jussieu.fr/nemo/svn/trunk/NEMO ) with the revision number 1214:

cd ./modeles/NEMO/OPA_SRC/SBC/
svn merge -r 1196:1214 http://forge.ipsl.jussieu.fr/nemo/svn/trunk/NEMO/OPA_SRC/SBC/sbcssm.F90

Merging

To get all changes from the revision 746 to the current one (HEAD) on a specific directory

# (you have already downloaded the branch you are working on)
cd ./NEMO/OPA_SRC/IOM
svn merge -r 746:HEAD -m 'Merge my local IOM directory with the trunk repository'                               \
          svn+ssh://'your_forge_login'@forge.ipsl.jussieu.fr/ipsl/forge/projets/nemo/svn/trunk/NEMO/OPA_SRC/IOM \

Commit changes to the repository

svn co [-m 'log message in one line'] items
Error: Failed to load processor box
No macro or processor named 'box' found

Then in the appropriate directory

# Commit and write the log message (ticket link #.... and so on) in your editor
svn ci files_list
# `svn ci` without files list will commit all modified files recursively from the current directory
# or directly from the command line of the shell session
svn ci -m 'log_message' files_list
# Tip: set your editor for SVN for multi-lines commit message
# for sh  and other related shells, interesting to include it in ~/.profile or ~/.bash_profile)
export SVN_EDITOR='your_favourite_editor' 
# for csh  "    "      "      ""  ,      "      ""    "    "" "" ~/.login                     )
setenv SVN_EDITOR='your_favourite_editor'

Information about the sources

To get information such as the PATH/URL you are working on, .i.e. trunk, branches .. and so on

cd ./NEMO && svn info

To get all commits/revision performed/associated on/to your working repository since its creation

cd ./NEMO && svn log --verbose --stop-on-copy