Difference between revisions of "Activity Team/Git FAQ"

From Sugar Labs
Jump to navigation Jump to search
m (cut misc section)
m (reduce header level)
Line 1: Line 1:
 
<noinclude>{{GoogleTrans-en}}{{TeamHeader|Activity Team}}</noinclude>
 
<noinclude>{{GoogleTrans-en}}{{TeamHeader|Activity Team}}</noinclude>
== Git and Gitorious FAQs ==
+
== Help! I suddenly can't connect to Gitorious! ==
=== Help! I suddenly can't connect to Gitorious! ===
 
 
:The [http://osuosl.org/ OSUOSL], which hosts Gitorious, has an aggressive IP blacklist policy.  If you once were able to push but now cannot, send an email to support@osuosl.org requesting that your IP be removed from the blacklist.
 
:The [http://osuosl.org/ OSUOSL], which hosts Gitorious, has an aggressive IP blacklist policy.  If you once were able to push but now cannot, send an email to support@osuosl.org requesting that your IP be removed from the blacklist.
  
=== How do I create an account on git.sugarlabs.org? ===
+
== How do I create an account on git.sugarlabs.org? ==
  
 
:[http://git.sugarlabs.org/users/new Register] using the link on the upper right menu on the Home Page.
 
:[http://git.sugarlabs.org/users/new Register] using the link on the upper right menu on the Home Page.
  
===How do I migrate a project to git.sugarlabs.org? ===
+
==How do I migrate a project to git.sugarlabs.org? ==
  
 
:Please follow the [[Activity Team/How_to_migrate_from_OLPC|instructions here]] to first set up your project's entry in Gitorious.
 
:Please follow the [[Activity Team/How_to_migrate_from_OLPC|instructions here]] to first set up your project's entry in Gitorious.
  
=== How do I create a new project? ===
+
== How do I create a new project? ==
  
 
:First set up the project in gitorious as per above.
 
:First set up the project in gitorious as per above.
Line 32: Line 31:
 
:to avoid opening an editor.
 
:to avoid opening an editor.
  
=== How do I create a fork of an existing project? ===
+
== How do I create a fork of an existing project? ==
  
 
:Click on the Repositories Tab of the project page in Gitorious. Click on "Mainline". A link will appear on the right-hand side of the page saying, "Clone repository".
 
:Click on the Repositories Tab of the project page in Gitorious. Click on "Mainline". A link will appear on the right-hand side of the page saying, "Clone repository".
Line 54: Line 53:
 
     url = gitorious@git.sugarlabs.org:yourproject/yourbranch.git
 
     url = gitorious@git.sugarlabs.org:yourproject/yourbranch.git
  
=== How do I request a merge? ===
+
== How do I request a merge? ==
  
 
:Click on the Repositories Tab of the project page in Gitorious. Click on "Mainline". A link will appear on the right-hand side of the page saying, "Request merge".
 
:Click on the Repositories Tab of the project page in Gitorious. Click on "Mainline". A link will appear on the right-hand side of the page saying, "Request merge".
  
=== How do I add a committer? ===
+
== How do I add a committer? ==
  
 
:Click on the Repositories Tab of the project page in Gitorious. Click on "Mainline". A link will appear on the right-hand side of the page saying, "Add Committer".
 
:Click on the Repositories Tab of the project page in Gitorious. Click on "Mainline". A link will appear on the right-hand side of the page saying, "Add Committer".
  
=== How do I get translations for my project? ===
+
== How do I get translations for my project? ==
  
 
# Use the gettext mechanism for your stings.
 
# Use the gettext mechanism for your stings.
Line 69: Line 68:
 
# Add User Pootle to the list of committers on your project.
 
# Add User Pootle to the list of committers on your project.
  
=== What if my project has a binary blob? ===
+
== What if my project has a binary blob? ==
  
 
:You may have to use the --force flag.
 
:You may have to use the --force flag.
Line 75: Line 74:
 
  git push -fv
 
  git push -fv
  
=== How do I stay in sync with translations being pushed from the Pootle server? ===
+
== How do I stay in sync with translations being pushed from the Pootle server? ==
  
 
:Periodically—in my experience, on Fridays—updates to the project .po files are pushed from the Localization team.
 
:Periodically—in my experience, on Fridays—updates to the project .po files are pushed from the Localization team.
Line 85: Line 84:
 
:'''Note:''' After every major release, a new branch is created on the Pootle server, e.g., Fructose-0.82 and Fructose-0.84. The Localization team may push translations to any or all of the corresponding branches of your project. Changes to your master branch are not necessarily intended for the release branches.
 
:'''Note:''' After every major release, a new branch is created on the Pootle server, e.g., Fructose-0.82 and Fructose-0.84. The Localization team may push translations to any or all of the corresponding branches of your project. Changes to your master branch are not necessarily intended for the release branches.
  
=== How do I update the Tag field in Gitorious? ===
+
== How do I update the Tag field in Gitorious? ==
  
 
  git tag -m "Release 36" v36 HEAD
 
  git tag -m "Release 36" v36 HEAD
 
  git push --tags
 
  git push --tags
  
=== As a maintainer, how do I merge a patch? ===
+
== As a maintainer, how do I merge a patch? ==
  
 
:git-pull does a combination of fetch and merge, so to merge a patch...
 
:git-pull does a combination of fetch and merge, so to merge a patch...
Line 96: Line 95:
 
  git pull git://git.sugarlabs.org/myproject/myproject-clone.git master
 
  git pull git://git.sugarlabs.org/myproject/myproject-clone.git master
  
===How do I select which branch I am working on?===
+
==How do I select which branch I am working on?==
  
 
  git checkout master
 
  git checkout master
Line 102: Line 101:
 
  git checkout sucrose-0.84
 
  git checkout sucrose-0.84
  
===How do I merge changes from master into a branch?===
+
==How do I merge changes from master into a branch?==
  
 
  git checkout sucrose-0.84
 
  git checkout sucrose-0.84
 
  git rebase master
 
  git rebase master
  
=== How do I generate a patch? ===
+
== How do I generate a patch? ==
 
  git diff > blah.patch
 
  git diff > blah.patch
 
:or
 
:or
Line 116: Line 115:
 
It is preferable that you generate your patch from the root directory of your project.
 
It is preferable that you generate your patch from the root directory of your project.
  
===How do I send a patch to the developers?===
+
==How do I send a patch to the developers?==
  
 
  git send-email --to=sugar-devel@lists.sugarlabs.org 0001*.patch
 
  git send-email --to=sugar-devel@lists.sugarlabs.org 0001*.patch

Revision as of 17:02, 29 August 2009

Team Home   ·   Join   ·   Contacts   ·   Resources   ·   FAQ   ·   Roadmap   ·   To Do   ·   Meetings

Help! I suddenly can't connect to Gitorious!

The OSUOSL, which hosts Gitorious, has an aggressive IP blacklist policy. If you once were able to push but now cannot, send an email to support@osuosl.org requesting that your IP be removed from the blacklist.

How do I create an account on git.sugarlabs.org?

Register using the link on the upper right menu on the Home Page.

How do I migrate a project to git.sugarlabs.org?

Please follow the instructions here to first set up your project's entry in Gitorious.

How do I create a new project?

First set up the project in gitorious as per above.
Go to your project directory and type:
git init
git add *
git commit -a
git remote add origin gitorious@git.sugarlabs.org:[your project name]/mainline.git
git push origin master
Hence forth, just use:
git commit
git push
You can also use
git commit -a -m "I am the commit message"
to avoid opening an editor.

How do I create a fork of an existing project?

Click on the Repositories Tab of the project page in Gitorious. Click on "Mainline". A link will appear on the right-hand side of the page saying, "Clone repository".
Note: if you (as maintainer) are making a clone to replace a corrupted mainline on your local machine, you'll need to:
 git clone  git://git.sugarlabs.org/yourproject/mainline.git
and update [remote] section
git config remote.origin.url gitorious@git.sugarlabs.org:yourproject/mainline.git

in the .git/config file, you may have to change:
[remote "origin"]
    url = git://git.sugarlabs.org/yourproject/yourbranch.git
to:
[remote "origin"]
    url = gitorious@git.sugarlabs.org:yourproject/yourbranch.git

How do I request a merge?

Click on the Repositories Tab of the project page in Gitorious. Click on "Mainline". A link will appear on the right-hand side of the page saying, "Request merge".

How do I add a committer?

Click on the Repositories Tab of the project page in Gitorious. Click on "Mainline". A link will appear on the right-hand side of the page saying, "Add Committer".

How do I get translations for my project?

  1. Use the gettext mechanism for your stings.
  2. Use python setup.py genpot to generate a .pot file for your project.
  3. Fill a ticket requesting that your POT file be added to Pootle. Assign the ticket to "Localization".
  4. Add User Pootle to the list of committers on your project.

What if my project has a binary blob?

You may have to use the --force flag.
git push -fv

How do I stay in sync with translations being pushed from the Pootle server?

Periodically—in my experience, on Fridays—updates to the project .po files are pushed from the Localization team.
Use git-pull to periodically pull these updates to the local copy of your project.
Also, run python setup.py fix_manifest to update the .mo files after updating the .po files
Note: After every major release, a new branch is created on the Pootle server, e.g., Fructose-0.82 and Fructose-0.84. The Localization team may push translations to any or all of the corresponding branches of your project. Changes to your master branch are not necessarily intended for the release branches.

How do I update the Tag field in Gitorious?

git tag -m "Release 36" v36 HEAD
git push --tags

As a maintainer, how do I merge a patch?

git-pull does a combination of fetch and merge, so to merge a patch...
git pull git://git.sugarlabs.org/myproject/myproject-clone.git master

How do I select which branch I am working on?

git checkout master
git checkout sucrose-0.84

How do I merge changes from master into a branch?

git checkout sucrose-0.84
git rebase master

How do I generate a patch?

git diff > blah.patch
or
diff -rup [old] [new]
or
git format-patch HEAD^

It is preferable that you generate your patch from the root directory of your project.

How do I send a patch to the developers?

git send-email --to=sugar-devel@lists.sugarlabs.org 0001*.patch

You may need to install git-mail:

sudo yum -y install git-email