SVN Repository Guideline
- Repository names must have no spaces.
- Every repository must have a description that clearly states, which type of project it contains.
- Every repository must have a responsible person.
Subversion Structure Philosophy
In general, projects are developed in collaboration between several departments/groups, therefore the structure is not organized by departments/groups.
There is no strict rule where to put the projects. Only guidelines where projects would fit naturally.
For bigger projects, a separate repository is encouraged. When a project becomes a "big project" is to be defined on a case by case basis.
Code that logically belongs together should reside in the same repository. I.e. frameworks with their expert applications or tools are kept together.
The level where to locate trunk/tags/branches has to be defined by the person responsible for the repository.
To encourage collaborations, access rights are granted in a rather unrestricted way, e.g. typically read access is granted for everyone.
Access rights are defined per repository, at maximum at the first level inside the repository for well justified exceptions only.
present: dbeck, sheymel, rvincelli, ukrause, lhechler, chandel
The current repository bel will be frozen. New repositories will be created as required.
- code history will not be migrated.
- repository bel will be frozen but kept online for three years (end of 2018). It can be used to look up the history of files.
- new repositories will be created as stated on SubversionRequests2016
- new repositores will have a responsible/contact person.
- freeze and creation will happen on 2016-01-04 (or shortly after)
- repository cosylab will be created. Once a cosylab project is completed / maintained by gsi, it should be exported and imported into the repository of the maintaining group.
- prepare code for export by moving all code that should be exported in a single folder of the bel repository. Makes it easier to trace history of files. Makes it obvious which code is abandoned.
- please clean up repository bel before the freeze, for example commits on the top folder
- export/import steps
An asterisk (*) marks the level at which
If a so called 'uncomplete tags' structure is used where
are at an higher level than the 'version' folders of the
structure, a plus sign (+) marks those 'version' folders. For example,
Only some typical projects of repositories are provided, this overview is not complete.
i386 # exemplary
ppc # for most
x86_64 # of the
src # modules
opera-make* (von https://www-acc.gsi.de/svn/bel/application/opera)
opera* (von https://www-acc.gsi.de/svn/bel/services/opera)
asl /* stuff used on asl: /common/usr/timing/... */
fec /* stuff used on FECs (nfsinit): /common/export/... */
configuration /* used by timing team for storing configurations */
development /* timing team, internal use */
documents /* documentation and information */
Contains all GUI operation applications for the control rooms, e.g. schedule planning application, trim, device-control, jmirko, sd-beamview, beam position monitor.
Internal projects for configuration and environments of the control rooms, e.g. console management, printer configuration etc.
GSI framework for device access "devacc" (libos, accdata, nameservice, cpu87, etc) including the equipment model software.
Scripts and binaries for management of embedded linux systems.
FESA framework and classes. It contains all productive FESA classes to have a central place for structuring and maintenance purposes.
Generally, it contains all industrial control development, i.e. framework development as well as industrial components like cryo, vacuum.
(Exception: personnel safety system resides in a specific repository for safety systems)
Contains the LSA settings management framework together with gui libraries.
Contains the GSI operation software migrated from VMS to Linux, newly developed applications and services, and corresponding migration frameworks, tools and services.
Read/Write access limited to CSCO (?).
The fundamental building blocks of the timing system are developed in close cooperation with CERN and other institutes. Souce code control within those fundamental blocks requires GIT and submodules. These repositories are "hosted" by ohwr.org or github.com. As a consequence only FESA classes, interfaces used by FESA classes, or some GSI specific items are managed by the CSCO SVN.
Contains all control system components like interlock, alarm, archiving, middleware plus the corresponding expert applications.
Contains all personnel safety projects: PSS, ZKS, TVS.
Read/Write access limited to CSCO.
Projects that can be used by all other projects.
Contains both "technical" projects that can/must be used by other projects (e.g. the maven parent-pom) and central projects like central constant definitions, messages etc.
Every department or group may have in addition a specific repository for internal development. As soon as any internal development should become available for others, it must be moved to one of the publicly available repositories above.
Read/Write access only per department/group.