Version 39 (modified by nicolasmartin, 7 years ago) (diff) |
---|
SubVersioN basics
Last edited at Wikinfo(changed_ts)? by Wikinfo(changed_by)?
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
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