= PALM Revision Contrl = == (1) Creating an svn branch == * Repository branch (only for admins) * @palm server: permissions to be set in /palmdata/conf/svn_authz file * svn copy https://palm.muk.uni-hannover.de/svn/palm/trunk https://palm.muk.uni-hannover.de/svn/palm/branches/ -m "Branch for created." * (rename: svn move -m „...“) * Local branch copy (for developers) * Create local working directory where the local copy of branch is placed, we recommend: \\ mkdir -p ~/palm/branches \\ The directory branches is on the same level as the directory current_version, where the official PALM releases/revisions (trunk) should be located * You can browse your branch under https://palm.muk.uni-hannover.de/trac/browser/palm/branches == (2 a) Checkout of local branch copy == * {{{cd $HOME/palm/branches/ }}} * {{{ svn checkout --username https://palm.muk.uni-hannover.de/svn/palm/branches/}}} == (2 b) Update of local branch copy == If the local branch copy already exists, and you would like to update it with a newer svn revision of this branch: * {{{cd $HOME/palm/branches/}}} * {{{svn update }}} You can also update/downdate to or checkout a specific revision: * {{{svn update -r }}} * {{{svn checkout -r --username ... }}} == (3) Code development in local ... == * __...'''svn''' branch copy__ \\ Versioning happens when commiting to the svn repository branch. With every commit, the PALM revision number is incremented. * __...'''git''' branch copy__ \\ To avoid too numerous commits to the svn repository branch, local versioning could be done using git (→ follow steps on next slide) __'''NOTE'''__: As you know, in order to compile and run PALM, the {{{PATH}}} and {{{PALM_BIN}}} variables need to be set in your shell environment (e.g. {{{.profile}}} or {{{.bashrc}}}) as in this example: |||| {{{ #PALM SCRIPTS}}} \\ {{{export PATH=$HOME/palm/current_version/trunk/SCRIPTS:$PATH }}}\\ {{{export PALM_BIN=$HOME/palm/current_version/trunk/SCRIPTS }}} || These __paths need to be adjusted__ when you run PALM out of your {{{~/palm/branches/}}} directory! \\ You might have to newly login to your system in order to activate these changes. You can check the paths by typing {{{echo $PATH}}} or {{{echo $PALM_BIN}}} to your terminal. An alternative to this approach is to __use symbolic links__ to link {{{.../trunk to .../branches/}}}. \\ This way you don't have to keep changing the {{{PATH/PALM_BIN}}} variables, and you run PALM out of your current_version directory, with your {{{SCRIPTS/SOURCE}}} files from {{{~/palm/branches/}}}