EGEE-SEE Code Repository
From EGEE-see WIki
Contents |
Purpose and Location
SEE-GRID-SCI developers of applications (NA4) and JRA1 commonalities (application services and operational tools), as well as developers within <!!name other HellasGrid supported projects> and are encouraged to use the EGEE-SEE/SEE-GRID-SCI SVN-Trac Repository.
The repository can support non-FLOSS projects, but liability not in HellasGrid or AUTH that maintains the repository.
Projects are created on demand and have the form: <project-acronym>.see-grid-sci.eu <!!describe for other HellasGrid supported projects>.
Access to the repository is based on certificates. Its Trac front end is available at
- https://trac.egee-see.org/
- https://trac.egee-see.org/trac/<project-name>
At that point, the list of available projects is displayed. In order to login, one has to click on the 'Login' link on the top right corner of the web page of an individual project.
A user can access the SVN repository from a Subversion client using the following URL:
- svn://svn.egee-see.org/svn/<project-name>
To create a new project and arrange access to it please send an e-mail to support@grid.auth.gr <!!should we mask this address?> with the following details:
- Project acronym/name
- Project description
- E-mail and DN of person responsible for the repository
- List of people with write access (emails and DN) <!!better leave this to the the responsible person>
- Default policy for anonymous users
- If the repository is to be restricted the list of people to have read access <!!better leave this to the the responsible person>
The responsible repository users are responsible for managing of the project, including the maintenance of user and group access rights and permissions, by using Trac WebAdmin module. VOMS integration not applied at the moment.
SVN Access
SVN Integration with Eclipse
Subclipse is an Eclipse plugin for SVN. It can be downloaded from here.
Notes regarding usage:
- In order to access the SVN Code Repository it is necessary for clients to have a password protected pkcs12 bundle containing certificate & private key which will be used for authentication.
- It is recommended to use SVNKit client interface within subclipse, because it currently works better with certificates (Eclipse -> Preferences -> Team -> SVN -> SVN interface). Among other things, it has an option to remember bundle access password after a bundle has been requested upon adding new repository to Eclipse.
- Cached data used to authenticate to various SVN repositories is stored in ~/subversion folder (on windows in C:\Documents and Settings\<username>\Application Data\Subversion).
Recommended SVN Layout for Individual Projects
The recommended SVN layout of the repository is:
- /trunk: Contains the main current development branch. New projects should be started here. It is recommended that it compiles and passes regression tests at all times.
- /branches: A branch is a special line of development of the source tree that started with a specific revision (svn copy). It is used to manage a sideline work that may be later merged with (svn merge) or into the main trunk (or parent branch). The branch is maintained over time by porting some changes from /trunk to /branches, so each one imposes additional maintenance costs. A branch is either a
- version branch (e.g. /branches/(Stable-)1.0) used to test and fix a release (should live as long as some version is supported, and should sync with bugfixes from /trunk), or
- feature branch (e.g. /branches/NewFunkyInvoicing) with a large number of destabilizing changes some in isolation from /trunk; feature branches should have a limited lifespan or be regularly (e.g. weekly) fully synchronised with /trunk.
- /tags: Used for bookmarking or taking a reference (non-editable) snapshots. Tags are used just to mark specific releases or phases of development.
- The release tag is packaged and released to production (e.g. /tags/(Release-)1.0.1, /tags/(Release-)1.0.2) from a version maintained within corresponding /branches/(Stable-)1.0, while the main development continues in /trunk.
- Private (temporary) tags can be also used to communicate private working copies not intended to become branches.
More details on usage of tags and branches are available here.
Trac Integration with Eclipse
It is possible to use Trac withing Eclipse. Two ways to access Trac from Eclipse are available:
- Trac plugin that can be obtained from http://trac-hacks.org/wiki/EclipseTracPlugin.
- Using a Mylyn Trac Connector. Mylyn Eclipse plugin is available at http://www.eclipse.org/mylyn/. It comes with the trac connector included (and a few more).
