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.
Decision 2015-11-24
present: dbeck, sheymel, rvincelli, ukrause, lhechler, chandel
The current repository bel will be frozen. New repositories will be created as required.
notes
- 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.
suggestions
- 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
Subversion Structure
An asterisk (*) marks the level at which
trunk/branches/tags
are defined.
If a so called 'uncomplete tags' structure is used where
trunk/branches/tags
are at an higher level than the 'version' folders of the
tags
structure, a plus sign (+) marks those 'version' folders. For example,
devacc*
eqmodels
bc+
denotes
devacc/trunk/...
/branches/...
/tags/eqmodels/bc/1.2.3/...
/1.2.4/...
Only some typical projects of repositories are provided, this overview is not complete.
applications
beamview*
bpm*
mirko*
init-program
schedule-configuration
setting-and-trim
controlrooms
console-manager
configuration-data
environment
devacc*
ecm+
ectest
eqdrivers
uiocgpib+
uiocslits+
...
eqmodels
bc+
bcu+
...
vvc+
fecs
k1xcg01+
...
kuecg05+
framework+
accdata
i386 # exemplary
ppc # for most
x86_64 # of the
src # modules
accdevice
alarm
corbaifc
cpu87
kernel
dbs
devacc_java
devacc_python
device
devicefactory
devman
infosnd
equinf
gateway
header
accmsg
dependency
incasl
incvme
message
nameservice
server
client
tcpip
test
nativedevice
os
periservice
subscriptionservice
tests
tools
milmon
vmeterm
ufcserver
usrs
vmedevice
win32
LabView-Interface
client_gui
hosts+
i386
python
x86_64
localdb
dbd+
dbsgen+
polynomial+
misc
beamAdjustingKnob+
microc+
sysv08+
download
eth
inc68
mops
ufcclient
ufcdirect
ufctest
tests+
client
...
utilities
code-generation+
devscr+
devscr
eqmods
PropHelper
eqmodwrappers+
PropHelper+
uti+
utiasl+
utipy+
utivme+
embedded*
crosscompiler
rootfsGenerator
...
fesa
framework*
config-db*
devices
class
dc_magnet*
biorem*
...
deploy-unit
dc_magnet*
biorem*
...
driver
biorem*
...
industrial
cryo
r3b
wincc_oa
s7
sis100
wincc_oa
s7
sfrs
wincc_oa
s7
hebt300
wincc_oa
s7
vakuum
testrig
wincc_oa
s7
sis18
wincc_oa
s7
unilac
wincc_oa
s7
cryring
wincc_oa
s7
unicos
tct
tp_widgets
tests
wincc_oa
wincc_tp
s7
lsa
gui
cscoap-lsa-gui-elements
core*
lsa-client-gsi
lsa-core-gsi*
doc*
setup
lsa-db-import*
lsa-db-scripts*
opera-make* (von https://www-acc.gsi.de/svn/bel/application/opera)
cop-libs
sys-tools
central-services
op-aps
op-env
op-services
sys-sdk-rc
vms-libs
opera* (von https://www-acc.gsi.de/svn/bel/services/opera)
sys-tools
fedb
vms-libs
console-tools
cop-libs
central-services
op-services
op-aps
op-env
oper-db
sys-sdk-rc
timing
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 */
subsystems
interlock-system
post-mortem-system
soft-oscilloscope-system
beam-transmission
data-acquistion
cmw
cmw-rda*
cmw-log*
japc
japc-ext-devacc*
japc-ext-devacc-eqmodparser*
logging
archiving
alarm
configuration-service
communication-message-framework
databases
db-scripts*
java
python
operdb*
create
fill
unload
util
controlsdb*
personnel-safety
zks
java*
applications
core
server
configuration
dbUserInterface ???
bkr
shared
uwz
zrs
pss
wincc_oa
s7
tvs
common
bel-parent*
conditions
tools
artifacts
ap
accsoft
accsoft-commons-physics-gsi*
common*
messages
api-sources*
msg-sources*
Repository applications
Contains all GUI operation applications for the control rooms, e.g. schedule planning application, trim, device-control, jmirko, sd-beamview, beam position monitor.
Repository controlrooms
Internal projects for configuration and environments of the control rooms, e.g. console management, printer configuration etc.
Repository devacc
GSI framework for device access "devacc" (libos, accdata, nameservice, cpu87, etc) including the equipment model software.
Repository embedded
Scripts and binaries for management of embedded linux systems.
Repository fesa
FESA framework and classes. It contains all productive FESA classes to have a central place for structuring and maintenance purposes.
Repository industrial
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)
Repository lsa
Contains the LSA settings management framework together with gui libraries.
Repository opera
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 (?).
Repository timing
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.
Repository subsystems
Contains all control system components like interlock, alarm, archiving, middleware plus the corresponding expert applications.
Repository personnel-safety
Contains all personnel safety projects: PSS, ZKS, TVS.
Read/Write access limited to CSCO.
Repository common
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.
Repository csco/lobi/loao/..
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.