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 39 (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

Add a new file / Remove a file

svn add 'Path/to/the/file/to/add'
svn del 'Path/to/the/file/to/delete'

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

Manage versioned properties

svn:keywords for commit infos

If the svn:keywords property is not defined on a NEMO routine, set it in order to get the functionality of $Id keyword replacement in all committed files with the commit informations (URL, author, date and revision)

svn pset svn:keywords Id 'path/to/the'/new_routine.'{f90, F90, h90, sh}'

svn:mime-type for syntax highlighting

Most of versioned files
If you want to apply a specific

svn:executable for scripts

svn pset svn:executable 'path/to/the/script'.sh
svn pdel svn:executable 'path/to/the/script'.sh

svn:externals for

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