Changes

Jump to navigation Jump to search
Use proper name, except in code or URIs
Line 1: Line 1:  
<noinclude>{{TeamHeader|Activity Team}}</noinclude>
 
<noinclude>{{TeamHeader|Activity Team}}</noinclude>
 
: '''[[Talk:Activity Team/Git FAQ | Post new questions here]]'''.
 
: '''[[Talk:Activity Team/Git FAQ | Post new questions here]]'''.
==Using gitorious (git.sugarlabs.org)==
+
==Using GitHub (github.com)==
=== Help! I suddenly can't connect to Gitorious! ===
+
=== Help! I suddenly can't connect to GitHub! ===
: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.
+
:Please contact to [https://github.com/contact GitHub support], or look at [https://help.github.com/ GitHub FAQ]
   −
To check if the problem is with your key, try:
+
=== How do I create an account on github.com? ===
   −
ssh -v gitorious@git.sugarlabs.org
+
:[http://github.com/join Join] using the link on the upper right menu on the Home Page.
   −
A successful ssh setup results in a normal response "Need SSH_ORIGINAL_COMMAND" then connection is closed.
+
===How do I migrate a project to GitHub? ===
   −
=== How do I create an account on git.sugarlabs.org? ===
+
:Please follow the [[Activity Team/How_to_migrate_from_Gitorious|instructions here]] to first set up your project's entry in GitHub.
 
  −
:[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? ===
  −
 
  −
: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 GitHub as per above.
    
:Go to your project directory and type:
 
:Go to your project directory and type:
Line 28: Line 22:  
git add .
 
git add .
 
git commit -a
 
git commit -a
git remote add origin gitorious@git.sugarlabs.org:[your project name]/mainline.git
+
git remote add origin git@github.com:username/[your project name].git
 
git push origin master</nowiki>
 
git push origin master</nowiki>
   Line 41: Line 35:  
=== How do I add an additional committer to my project? ===
 
=== How do I add an additional committer to my 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, "Add Committer".
+
:Go to: <nowiki>https://github.com/USERNAME/PROJECTNAME/settings/collaboration</nowiki> . Type a username in the box and click "add collaborator"
    
=== 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".
+
:Go to project page, and click the "Fork" button in the top
    
:Note: if you (as maintainer) are making a clone to replace a corrupted mainline on your local machine, you'll need to:
 
: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
+
   git clone  git://github.com/username/yourproject.git
    
:and update [remote] section
 
:and update [remote] section
   −
  git config remote.origin.url gitorious@git.sugarlabs.org:yourproject/mainline.git
+
  git config remote.origin.url git@github.com:username/project.git
    
----
 
----
Line 59: Line 53:  
:in the .git/config file, you may have to change:
 
:in the .git/config file, you may have to change:
 
  [remote "origin"]
 
  [remote "origin"]
     url = git://git.sugarlabs.org/yourproject/yourbranch.git
+
     url = git://github.com/username/yourproject.git
    
:to:
 
:to:
 
  [remote "origin"]
 
  [remote "origin"]
     url = gitorious@git.sugarlabs.org:yourproject/yourbranch.git
+
     url = git@github.com:username/yourproject.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".
+
:Go to your GitHub fork page and follow the steps of the images
 +
 
 +
[[File:Merge-Step1.png]] <br />
 +
Click on the Pull Request button
 +
[[File:Merge-Step2.png]]<br />
 +
You will get something like that
 +
[[File:Merge-Step3.png]]<br />
 +
If you used another branch for changes, just change it in the image
 +
[[File:Merge-Step4.png]]<br />
 +
Click on Create Pull request
 +
[[File:Merge-Step5.png]]<br />
 +
Edit the title/description of the pull request, and click on Create pull request. Now the commiter will review it]]
    
===What is the difference between a branch and a repository?===
 
===What is the difference between a branch and a repository?===
   −
When you make a clone of a project on gitorious, it creates a "repository". You can see the list of repositories associated with a project by clicking on the Repository Tab. Branches are clones within a repository (created with git branch and accessed through git checkout). Git merge commands refer to branches, not repositories, so in order to merge a repository back into mainline, you need to pull (fetch followed by merge) it as if it were a patch.
+
When you make a clone of a project on GitHub, it creates a "repository". You can see the list of repositories associated with a project by clicking on the Repository Tab. Branches are clones within a repository (created with git branch and accessed through git checkout). Git merge commands refer to branches, not repositories, so in order to merge a repository back into mainline, you need to pull (fetch followed by merge) it as if it were a patch.
    
  git merge [your repository name]  # This won't work
 
  git merge [your repository name]  # This won't work
Line 88: Line 94:  
  git rebase master
 
  git rebase master
   −
===How do I push my branch to gitorious?===
+
===How do I push my branch to GitHub?===
    
Use <code>git push origin <your branch name></code>, e.g.,
 
Use <code>git push origin <your branch name></code>, e.g.,
Line 125: Line 131:     
Taken from: [http://ariejan.net/2009/10/26/how-to-create-and-apply-a-patch-with-git/]
 
Taken from: [http://ariejan.net/2009/10/26/how-to-create-and-apply-a-patch-with-git/]
 +
 +
==== Appying a patch from thunderbird ====
 +
*Right click save as
 +
* cat <save-as>  | git am --signoff
    
=== How do I send a patch to a maintainer? ===
 
=== How do I send a patch to a maintainer? ===
Line 142: Line 152:  
  git send-email --to <maintainer> --subject=mail-subject  0003-service-name-deprecated.patch
 
  git send-email --to <maintainer> --subject=mail-subject  0003-service-name-deprecated.patch
    +
git send-email --to <maintainer> --cc <mailing-list> --subject=new-patch --cover-letter --annotate 0001-*.patch
 +
 +
git send-email --to <maintainer> --cc <mailing-list> --subject=new-patch --cover-letter --annotate --no-validate 0001-*.patch
   −
You can also generate a [[#How do I request a merge?|merge request]] on Gitorious from your forked repository to mainline.
+
 
 +
You can also generate a [[#How do I request a merge?|merge request]] on GitHub from your forked repository to mainline.
    
=== How do I send a patch to the Sugar developers? ===
 
=== How do I send a patch to the Sugar developers? ===
Line 180: Line 194:  
=== How do I amend a commit message? ===
 
=== How do I amend a commit message? ===
   −
If you have "dirty" history (i.e. other patches that are not in mainline
+
If you have "dirty" history (i.e., other patches that are not in mainline
 
yet) please create a branch carrying only those two patches and push
 
yet) please create a branch carrying only those two patches and push
 
that branch:
 
that branch:
Line 210: Line 224:  
: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...
   −
  git pull git://git.sugarlabs.org/myproject/myproject-clone.git master
+
  git pull git://github.com/username/myproject-clone.git master
    
=== What is the community protocol for submitting patches? ===
 
=== What is the community protocol for submitting patches? ===
Line 222: Line 236:  
==Internationalization work flow==
 
==Internationalization work flow==
   −
The i18n work flow involves an interplay between the Pootle server, where translations are maintained and gitorious, where the master POT files are updated. '''Note''': As a maintainer, you may update the .pot file associated with your project, but never update .po files. These are updated for you in the i18n work flow.
+
{{Note/note|This section is for Gitorious only|The following does not apply to GitHub.}}
 +
 
 +
The i18n work flow involves an interplay between the Pootle server, where translations are maintained and Gitorious, where the master POT files are updated. '''Note''': As a maintainer, you may update the .pot file associated with your project, but never update .po files. These are updated for you in the i18n work flow.
    
=== How do I get translations for my project? ===
 
=== How do I get translations for my project? ===
Line 257: Line 273:  
  git push -fv
 
  git push -fv
   −
=== How do I update the Tag field in Gitorious? ===
+
=== How do I update the Tag field in GitHub? ===
    
  git tag -m "Release 36" v36 HEAD
 
  git tag -m "Release 36" v36 HEAD
Line 269: Line 285:     
  git checkout <tag_name>
 
  git checkout <tag_name>
 +
 +
=== How do I delete specific tags? ===
 +
 +
git tag -d <tag_name>
 +
git push origin :refs/tags/<tag_name>
    
===How can I get commit access behind firewall?===
 
===How can I get commit access behind firewall?===
    
:If you are behind a firewall and need only ''Read-Only'' access to git.sugarlabs.org, you can use HTTP links, like
 
:If you are behind a firewall and need only ''Read-Only'' access to git.sugarlabs.org, you can use HTTP links, like
  http://git.sugarlabs.org/git/<project>/mainline.git
+
  https://github.com/username/<project>.git
 
   
:But if you need commit access, you'll have to set up an SSH proxy tunnel. One option is using [http://www.torproject.org/ Tor]. So, install all requirements:
 
:But if you need commit access, you'll have to set up an SSH proxy tunnel. One option is using [http://www.torproject.org/ Tor]. So, install all requirements:
 
* [http://www.torproject.org/ Tor] to make tunnel via Tor network,
 
* [http://www.torproject.org/ Tor] to make tunnel via Tor network,
Line 281: Line 301:     
:Setup your tunnel in SSH. Add the following lines to your ~/.ssh/config
 
:Setup your tunnel in SSH. Add the following lines to your ~/.ssh/config
  Host git.sugarlabs.org
+
  Host github.com
     User gitorious
+
     User git
     ProxyCommand /usr/bin/connect -S 127.0.0.1:9050 git.sugarlabs.org 22
+
     ProxyCommand /usr/bin/connect -S 127.0.0.1:9050 github.com 22
    
:Then start [http://www.torproject.org/ Tor], you can just run it on behalf of your account
 
:Then start [http://www.torproject.org/ Tor], you can just run it on behalf of your account
Line 301: Line 321:  
Here's an IRC session recording the very first steps of new activity maintainer learning how to merge patches:
 
Here's an IRC session recording the very first steps of new activity maintainer learning how to merge patches:
   −
:[[Activity_Team/Git_Activity_Maintainer_Walkthrough]]
+
*:[[Activity_Team/Git_Activity_Maintainer_Walkthrough]]
       
[[Category:Activity Team]]
 
[[Category:Activity Team]]
 
[[Category:FAQ]]
 
[[Category:FAQ]]

Navigation menu