How To

Projects

Create a new project

  • Follow the step depicted in the video tutorial: (click on the picture)

You need:

- a name: any combination of letters, numbers, symbols
- a project identifier: lower-case letters only , with dashes and numbers but no underscores.
- a piece of code to be pushed to the GIT repository: the name of the repository has to be the same as the project identifier !

  • Warning: project identifier must be lower-case, digits and "-" only

Since there is a bug for setting permissions at the repository creation, you need to contact one administrator to fix them: open a request on the Site bug tracker.

Create a new GIT repository

  • If you did not added it at the project creation, you need to activate the "Repository" module for your project: click on "Settings" in the project tabs, then check "Repository" and save.
  • Then, still in the "Settings" interface, go to the repositories tab, and if the list is empty click on "New Repository":

  • SCM: Git only
  • Main repository should be checked
  • Identifier: Attention! repository identifier must match exactly the project identifier to be able to use the Redmine authentication.
  • Path to repository: must be /dryad/git/repositories/project_identifier.git, do not forget to click on "Create Repository" next to the path.
  • Path encoding: leave it set to UTF-8
  • Report last commit for files and directories: check if you want

Repositories

Pull code from a repository

! Logins and passwords are Redmine's and not KTH ones !

The ability to pull/push code from/to a repository is controlled per project and depending on the role assigned to the user (Manager,Developer,Reporter): to each role is associated a set of credentials.

Any action on a repository has to be made trough HTTPS so that the transmission of logins and passwords to the server is encrypted (conversely GIT repositories are not accessible through HTTP).

  • By default only users assuming the Reporter role can pull code.

Cloning a project repository

git clone https://git.dryad.csc.kth.se/projectname

The name of the repository matches is the name of the project, thus for instance for the code for the project dolfin-hpc , if accessible by the user, can be cloned by using:

git clone https://git.dryad.csc.kth.se/dolfin-hpc

SSL certificates from dryad might not be trusted, thus you might need to set the following environment variable:

export GIT_SSL_NO_VERIFY=1 (ksh/bash)

setenv GIT_SSL_NO_VERIFY 1 (csh)

TBD: we should add the trick with git config to set the flag per domain.

git config http.sslVerify false

Add the --global flag if you want it set to false for every repository.

If you get an error 401, it might be because your username is not (or incorrectly) sent by GIT to the server.
Then you should set it explicitly:

git clone https://username@git.dryad.csc.kth.se/toto

Contributing code to a repository

  • If you intend to contribute by commiting directly to the server, create your own branch to avoid messing up with master.
  • You can list the existing branches:


alarcher@musta:~/Workspace/dolfin-hpc$ git branch -r
origin/HEAD -> origin/master
origin/janpack-upc
origin/larcher
origin/master
origin/quadrature
origin/ufc

This command lists the remote branches. It reflects the status of the local copy of the repository at the time the repo was cloned or updated. To get the current status use
git remote update

Create your own branch:

git checkout -b mybranch

This command contains the two following commands:

git branch mybranch

and

git checkout mybranch

Where the first command creates a branch based on the branch you currently on and the second command switches to the newly created branch.
So either us the these two command or the short cut from above.

Pushing your code

git push origin mybranch

Before pushing your branch on Dryad, make sure you are working on the right branch


alarcher@musta:~/Workspace/icorne$ git branch
master
\* mybranch

Report a bug

  • Go to a project, click on the "New Issue" tab of the menu and fill the important fields:

  • Tracker:
    • Bug
    • Feature
    • Support
  • Subject
  • Description: guidelines needed to ensure reproducibility of the issue
  • Status
  • Priority: based on property: blocking, performance affecting, numerically incorrect
  • Watchers

Commit code to a repository

  • By default only users assuming the Developer role can push
  • For the moment there is no control access per branch, so be careful !

Some GIT tutorials

Bug tracker

Integration with Eclipse

http://www.redmine.org/projects/redmine/wiki/HowTo_Mylyn

repocreate.png (31.1 KB) Aurélien Larcher, 09/30/2013 12:44 pm

reposettings.png (19.8 KB) Aurélien Larcher, 09/30/2013 12:44 pm

bugtracker.png (56.7 KB) Aurélien Larcher, 09/30/2013 12:44 pm

video.png (77.8 KB) Aurélien Larcher, 09/30/2013 12:57 pm