GeantV code management

New link for repository

The official git repository has been moved from https://git.cern.ch/reps/geant.git to https://gitlab.cern.ch/GeantV/geant.git

Migration

After you made sure that your work is checked in locally, to move to the new repository you can:

The nice way:

git checkout master
git pull
git remote rename origin old-origin
git remote add origin https://gitlab.cern.ch/GeantV/geant.git
git remote rm old-origin
git fetch
git branch --set-upstream-to=origin/master master
git pull

The “simple” way (but you will lose all the work that you have not yet pushed in!!!)

rm -rf [Directory with GeantV code] 
git clone https://gitlab.cern.ch/GeantV/geant.git
cd geant 
git checkout master

Development policy for GeantV

The policy of development has been redefined as follow:

a) the main development branch is master.

b) all developers in geant-dev have the right to check into master

c) when a developer wants to introduce a small fix, he/she can directly check-in / push as before in master

d) in case of a feature development, the developer should create a branch from master and work on it.

When the work is finished, or regularly, in case of a longer development, the work should be merged back not directly but via a merge request https://gitlab.cern.ch/GeantV/geant/merge_requests that will be vetted (for the moment) by Philippe Canal and Federico Carminati.

In any case, at least once per week, developers should merge master into their feature branch, to make sure that they do not diverge.

Once the merge request is accepted, the corresponding feature branch is deleted.

Merging policy

Merging of master into the feature branch should be done via 

git fetch
git rebase master 

possible conflicts should be solved via the standard git resolution procedure. In case the number of conflicts is unreasonably high, the following can be done.

git fetch
git merge master

here also there can be conflicts, but usually much less.

"Small fixes"

The appreciation of what is a small fix and a feature is left to the developer. However attempts in bypassing the system will result in checkins to be reverted and developer to be asked to resubmit the changes via a merge request.

Feature branches

Feature branches should live as long as needed for the feature to be fully developed and tested, but not beyond, to avoid divergence. Regular merge of master into feature branches is essential to ensure that the merge of the feature into master could proceed smoothly.

Release policy

We will make periodic releases from the master branch. The frequency of these releases is not yet decided and it will depend on the status of the code.

Tagging policy

We will make periodic tags on the master branch to signal important stages of the development.

Gitlab notifications

Gitlab has a personal setting for the communications you receive. Once you login to your git account, you can access it via the following link: https://gitlab.cern.ch/profile/notifications

The GeantV project requires people in geant-dev to set their notification level to "Watch".

Advised links to look before starting to work

Check more about code review procedure via merge request here