Create a new project¶
- Follow the step depicted in the video tutorial: (click on the picture)
- 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
Pull code from a repository¶
- GIT repositories are served at https://git.dryad.csc.kth.se
- Authentication based on the Redmine ACLs:
! 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:
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
--globalflag 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://email@example.com/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
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
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
Report a bug¶
- Go to a project, click on the "New Issue" tab of the menu and fill the important fields:
- Description: guidelines needed to ensure reproducibility of the issue
- Priority: based on property: blocking, performance affecting, numerically incorrect
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
- bzr-hg-git command translation sheet