Activity Team/Git Tutorial
Gitorious
Getting started with Gitorious.
Create an account
Create an account on git.sugarlabs.org by selecting the register link on the home page.
Enter your
- Login
- Password
- Password confirmation
Follow link on email confirmation
Create SSH Key
To create a key use ssh-keygen. The following command will create an “dsa” key:
ssh-keygen -t dsa
For creating a “rsa” key use:
ssh-keygen -t rsa
The generated key will be stored in the hidden .ssh folder.
id_dsa is your private key. Only you should have access to this private key.
id_dsa.pub is your public key.
ls -al ~/.ssh -rw------- 1 strom strom 668 2009-12-17 21:51 id_dsa -rw-r--r-- 1 strom strom 603 2009-12-17 21:51 id_dsa.pub
Log in to http://git.sugarlabs.org/account and upload you public key. In your account you can find a link named Add SSH key. You can paste your public key directly to the input field.
With ssh-keygen you can specify the name of your key file. Using this feature is no good idea. Keys should generally located in ~/.ssh/id_rsa.pub or ~/.ssh/id_dsa.pub.
ToDo: Does keys protected with a passphrase work together with GIT?
ToDo: What is the difference between DSA and RSA keys?
Create a Project
Created a new project by selecting the new link on the project page.
Enter your
- Project Title
- Project slug (This a filled in for you based on your project title
- License
- Description
There several other question which can be answered later as you have more information.
Create Local Repository
There are two way to create a local repository. Initial one from scratch using git commands or pull your new project from Gitorious.
Initialize blank repository
Make a directory for your project, and copy your source files there. Change to the project directory and run:
git init
Pull from Gitorious
One of the easiest way to create a local git repository which it set up to point to your new Gitorious project is to
Push project
git remote add origin gitorious@git.sugarlabs.org:turtleart/mainline.git # to push the master branch to the origin remote we added above: git push origin master # after that you can just do: git push
To find the push URL, visit the Gitorious page for the project. Example: http://git.sugarlabs.org/projects/turtleart/repos/mainline
Use
git-pull
to periodically pull pootle updates to the project .po files (every Friday?)
Also, run
python setup.py fix_manifest
to update the .mo files after updating the .po files
alsroot taught me about another git feature: tags
git tag -m "Release 36" v36 HEAD git push --tags
bertf explained to me that git-pull does a combination of fetch and merge, so to merge a patch...
git pull git://git.sugarlabs.org/infoslicer/alsroots-clone.git master
A few notes re moving to the Sugar Labs infrastructure:
- use git init to create a new project
- source packages now go in
shell.sugarlabs.org:/upload/sources/sucrose/fructose/
download.sugarlabs.org:/var/www-sugarlabs/download/sources/sucrose/fructose/
- don't forget to update addons as well!!
- and to copy the tar file to download.sugarlabs.org
download.sugarlabs.org:/download/sources/honey/... download.sugarlabs.org:/download/sources/sucrose/fructose/...