SVN quick reference

Last edition on 05/18/20 09:05:57 by smasson

For reference, browse to http://svnbook.red-bean.com

## Definitions
${REV}    ## REVision number
${WCPATH} ## Working Copy PATH
${URL}    ## URL of working path mirrored (repository URL + relative path)
## Repository URL depends on your role
## - user      => http://forge.ipsl.jussieu.fr/nemo/svn
## - developer => svn+ssh://${ID}@forge.ipsl.jussieu.fr/ipsl/forge/projets/nemo/svn

Basic use

Advanced features

Working copy

## Download a working copy
svn {checkout,co} ${URL}[@${REV}]

## Update it
svn {up,update} [-r ${REV}] [${WCPATH}]

## Push modifications
svn {ci,commit} [-m 'one-liner message'] [${WCPATH}]
svn {ci,commit} --include-externals ...                ## Append externals

Items

## Common cmds
svn add                 ${WCPATH}    ## Add item under versioning
svn {delete,remove,rm}  ${WCPATH}    ## Remove item
svn {st,status}        [${WCPATH}]   ## List modified items 
svn diff               [${WCPATH}]   ## Differences inside items
svn revert              ${WCPATH}    ## Give up edits

## Straightforward UNIX-like cmds
svn {cat,list,ls} {${URL},${WCPATH}}[@${REV}]
svn mkdir         {${URL},${WCPATH}}

## Apply edits from diff file
svn patch ${DIFF} [${WCPATH}]   ## SVN version > 1.7

## Infos
svn log  {${URL},${WCPATH}}[@${REV}]   ## List commit messages
svn info {${URL},${WCPATH}}[@${REV}]   ## Metadata of working copy

## In case of trouble
svn {resolve,resolved} ${WCPATH}   ## Ruling conflicted files
svn cleanup [${WCPATH}]            ## Fix corrupted working copy

Properties

http://svnbook.red-bean.com/en/1.7/svn.ref.properties.html

## Sub-cmds for managing properties
## {propdel,pdel} / {propset,pset}
## {propedit,pedit} / {proplist,plist}

## list svn properties
svn proplist ${WCPATH}

## print content of a specific svn properties, for example svn:externals
svn propget svn:externals ${WCPATH}

## 'svn:keywords Id': record commit infos in routine
svn {propset,pset} svn:keywords Id ${WCPATH}

## 'svn:executable': set permissions for running scripts
svn {propset,pset} svn:executable ${WCPATH}

## 'svn:externals': defining external sources for items
## - Single external
svn {propset,pset}  svn:externals ${URL}[@${REV}] ${WCPATH}
## - Multi externals (for example edit with vi)
svn {propedit,pedit} --editor-cmd vi  svn:externals ${WCPATH}

## commit only svn properties
svn ci --depth empty -m "blablabla" ${WCPATH}

Branching

## Create a branch (copying)
svn copy {${URL},${WCPATH}}[@${REV}] {${URL},${WCPATH}}

## Merging sources
svn merge  {${URL1},${WCPATH1}}[@${REV1}]  \
          [{${URL1},${WCPATH2}}[@${REV2}]] \
          ([${WCPATH}]

## Update to a new URL
## - Mirror a traversing branch (hazardous!!)
svn switch ${URL}[@${REV}] [${WCPATH}]
## - Relocate to a new server or different URL scheme
svn switch --relocate ${URL1} ${URL2}   ## SVN version < 1.7
svn relocate          ${URL1} ${URL2}   ## SVN version > 1.7
Last modified 7 weeks ago Last modified on 2020-05-18T09:05:57+02:00