Update on Subversion
Jeremy McCormickCurrent Status and Plans
2Insert Presentation Title in Slide Master
What’s the plan?
• All HPS projects in the LCD CVS are being migrated to the Subversion (SVN) revision control system.
• The CVS should not be used from now on, and should be considered “frozen”, though all modules are still writeable (for now).
• LCSim, SLIC and its dependencies, and other projects are also being moved.
• During this process, I am taking the opportunity to reorganize sources, as well as leave things behind (mostly LCD projects) that are abandoned, unused and/or unmaintained.- This has mostly applied to LCSim thusfar, rather than HPS projects.- LCSim already underwent heavy reorganization when imported. This
has mostly NOT occurred for HPS (yet).
3Insert Presentation Title in Slide Master
Status Report: Migration
Migrated successfully lcsim, lcsim-*, etc.GeomConverterslic, gdml, lcdd ilcinstall updated from CVS to SVN, too
hps-detectorshps-javajevio-basehps-et-java
4Insert Presentation Title in Slide Master
Repository Information
• lcsim repository base URLsvn://svn.freehep.org/lcdet/
• lcsim trunksvn://svn.freehep.org/lcdet/projects/lcsim/trunk
• lcsim source browser http://java.freehep.org/svn/repos/lcdet/list/projects/lcsim/trunk/• HPS repository base URL svn://svn.freehep.org/hps/• HPS projects’ trunk
svn://svn.freehep.org/hps/java/trunk
• HPS source browser http://java.freehep.org/svn/repos/hps/list/java/trunk/
5Insert Presentation Title in Slide Master
Credentials
• By default, projects are checked out in read only mode, which means local modifications cannot be checked in.
• In order to check out a writable copy, you need to provide a valid username and password combination.• The lcsim and HPS repositories have separate passwd files, though most
users can use the same ones.• From the command-line, need to use options like: svn co –username=[username] –password=[password] [URL]• If you checkout from the command line, the passwords will usually be
saved in your SVN config within the home directory and then subsequently used automatically.
• How the IDE does this depends (Netbeans, Eclipse, etc.).• Eclipse will use “secure storage” to encrypt passwords associated with a
repository.
6Insert Presentation Title in Slide Master
Eclipse Repositories
Put credentials here for write mode
7Insert Presentation Title in Slide Master
LCSim Repository Organizationtop dir
parent pom
branches dirtags dir
used to be GeomConverter
runnable jar and JAS install
current trunk (all lcsim projects)
pom for building all modules
Insert Presentation Title in Slide Master
8
HPS Repository Organization
top dirtrunk
formerly hps-detectorscreates bin jar and installs to JASformerly hps-et-java
ye olde hps-javaformerly jevio-base
monitoring appuser packages
module buildbranches
tagssandbox area for tests, broken code, etc.
util package
database conditions framework
9Insert Presentation Title in Slide Master
Bootstrap Instructions
# build lcsim locallymkdir workdir; cd workdirsvn co svn://svn.freehep.org/lcdet/projects/lcsim/trunk lcsim_trunkcd lcsim_trunkmvn clean install –DskipTests=true; cd -
# build HPS locallysvn co svn://svn.freehep.org/hps/java/trunk hps_trunkcd hps_trunkmvn clean install –DskipTests=true
10Insert Presentation Title in Slide Master
Module Build
• All HPS Java projects can be built sequentially using a single Maven command from the top-level directory.
svn co svn://svn.freehep.org/hps/java/trunk hps_trunkcd hps_trunkmvn clean install
11Insert Presentation Title in Slide Master
Running in Batch Mode
• Now there is a separate module for creating the runnable jar.• Used to be created by hps-java but no longer
• SVN URLsvn://svn.freehep.org/hps/java/trunk/distribution
• After ‘mvn clean install’ of that module, it will be here:distribution/target/hps-distribution-3.0-SNAPSHOT-bin.jar
• This module will pull in a set of dependencies defined in its POM file. (distribution/pom.xml)• To include local modifications of classes from other modules
like hps-java in your batch job, build those modules first and then make the distribution jar.
12Insert Presentation Title in Slide Master
Tips and Tricks
• Find out about your working copy svn info• See local modifications svn status• Get some help svn help• Put global ignores in your ~/.subversion/config
global-ignores = target *.class *.jar *.diff x.x *.log .classpath .project .settings *.tar.gz
13Insert Presentation Title in Slide Master
Plans
• Reorganize hps-java some more.• Remove unused code.• Cleanup packages in terms of which classes are where, as this is
a bit of a mess right now. (particularly recon.tracking)• Continue to extract packages into sub-modules where
appropriate.• Add a parent POM distinct from lcsim (using lcsim-parent now)• Change overall package names
• org.lcsim.hps => org.hps