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

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.
Topic revision: r42 - 29 Jan 2016, LudwigHechler
This site is powered by FoswikiCopyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding Foswiki? Send feedback