Difference between revisions of "Activity Team/Git Tutorial"
Line 62: | Line 62: | ||
=== Initialize git global settings === | === Initialize git global settings === | ||
− | Git must know your email and name. It uses this when you push or mail | + | Git must know your email and name. It uses this when you commit a change, so that when you push or mail it others will know who did it. |
If you do not use git on your system for any other project, you can configure git: | If you do not use git on your system for any other project, you can configure git: | ||
Line 69: | Line 69: | ||
git config -f ~/.gitconfig user.name <your-name> | git config -f ~/.gitconfig user.name <your-name> | ||
− | Otherwise, configure git in the repository | + | Otherwise, configure git in the repository: |
+ | cd ${SLUG} | ||
git config user.email <email-you-used-for-registering-project> | git config user.email <email-you-used-for-registering-project> | ||
git config user.name <your-name> | git config user.name <your-name> |
Revision as of 00:05, 29 December 2010
Gitorious
Getting started with Gitorious, a web based Git service used by Sugar Labs.
Create an account
Create an account on git.sugarlabs.org by selecting the register link on the page.
You will be asked:
- Login
- Password
- Password Confirmation
Fill the fields and press SIGN UP. Gitorious will send you a confirmation email. Check your email, wait for the confirmation, and follow the link provided.
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/ click on Dashboard, then Manage SSH, then Add SSH key. The Add a new public SSH key page will appear, with a large text entry field. Open your public key in a text editor or web browser, and then paste it into the text entry field. Click on Save.
Once you do this, Gitorious trusts SSH connection from your system because your system has the private key, and Gitorious has the public key.
(With ssh-keygen you can specify the name of your key file. Using this feature is not a good idea, because we haven't tested it. Keys should generally be 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?
- until the patent expired, RSA could not be used in some countries,
- some countries have laws against consumer use of encryption.
Create a Project
Check that the activity is not already on git.sugarlabs.org. If it is, note the clone URL and skip to the next section. If it is not, then click the Create a new project link on the Projects page, and enter:
- Title
- Slug (this defaults to a file name format of your title)
- License
- Description
then click on Create project. There several other question which can be answered later as you have more information.
Once this step is done, Gitorious will have created a git repository at Sugar Labs.
Create Local Repository
Clone it from Gitorious:
git clone gitorious@git.sugarlabs.org:<slug>/mainline.git <slug>.git
Replace <slug> substring with your project slug value.
Initialize git global settings
Git must know your email and name. It uses this when you commit a change, so that when you push or mail it others will know who did it.
If you do not use git on your system for any other project, you can configure git:
git config -f ~/.gitconfig user.email <email-you-used-for-registering-project> git config -f ~/.gitconfig user.name <your-name>
Otherwise, configure git in the repository:
cd ${SLUG} git config user.email <email-you-used-for-registering-project> git config user.name <your-name>
Add source files or change existing files
Commit changes
Request review of changes
git format-patch -1
or
git send-email
Push changes
Your changes have to be pushed from your local repository to git.sugarlabs.org so that others can see them.
git push
Pull changes
Others, including pootle, may add changes to the repository at git.sugarlabs.org. You must merge these with your repository.
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:/srv/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/...