Note:

If you want to create a new page for developers, you should create it on the Moodle Developer Resource site.

Git for developers: Difference between revisions

From MoodleDocs
Line 18: Line 18:
</code>
</code>


2. You will create a update script in order to update your github and local repository from git.moodle.org. Add the reference to it:
2. You will create a update script in order to update your github and local repository from git.moodle.org. Add a reference to this Moodle.org Git repository and make your local cvshead branch tracking it:
<code bash>
<code bash>
git remote add upstream git://git.moodle.org/moodle.git
git remote add upstream git://git.moodle.org/moodle.git
git branch --set-upstream cvshead upstream/cvshead
</code>
</code>


Line 37: Line 38:
5. Now you can work on a new issue. You can use a Git UI tool like SmartGit for these steps:
5. Now you can work on a new issue. You can use a Git UI tool like SmartGit for these steps:
* run the update script (the script will switch to "cvshead" branch, so take care to stash/commit the changes of your current branch)
* run the update script (the script will switch to "cvshead" branch, so take care to stash/commit the changes of your current branch)
* create a new branch and switch to it.
* create a new branch and switch to it. You should never work in your local cvshead branch.
* fix your issue with your favorite IDE.
* fix your issue with your favorite IDE.
* commit, push and do a pull request.
* commit, push and do a pull request.

Revision as of 03:54, 15 December 2010

This document has for purpose to make you start quickly (in the hour) Moodle development with GIT. It doesn't have for purpose to explain you GIT. Please have a look to the full documentation for a better understanding of GIT... (TODO)

The set up

1. Go to Github and create an account.

2. Go to the official Moodle Github repository and click on the Fork button. You now have your own github Moodle repository.

3. Install GIT on your computer. If you are on Mac, git-osx-installer installs it in few click.

4. Now the technical part, you will need to setup your SSH public key, so you can push to your github Moodle repository from your local Moodle repository. On Mac you can go on this Github help page. If you are on another system, go to the Github administration, to the section SSH Public Keys, and you should see a link to a help page. Is it done? Good, it was the most difficult.

Working on 2.0

1. Create a local clone repository of your github repository. In a terminal: git clone git@github.com:YOUR_GITHUB_USERNAME/moodle.git ./YOUR_LOCAL_MOODLE_FOLDER/

2. You will create a update script in order to update your github and local repository from git.moodle.org. Add a reference to this Moodle.org Git repository and make your local cvshead branch tracking it: git remote add upstream git://git.moodle.org/moodle.git git branch --set-upstream cvshead upstream/cvshead

3. Create the update script (name it "update_github")

cd YOUR_LOCAL_MOODLE_FOLDER git fetch upstream git checkout cvshead git pull git push origin refs/remotes/upstream/cvshead:cvshead

4. Run the./update_github script. Your local repository ("cvshead" branch) and your github repository ("cvshead" branch) will be updated from git.moodle.org.

5. Now you can work on a new issue. You can use a Git UI tool like SmartGit for these steps:

  • run the update script (the script will switch to "cvshead" branch, so take care to stash/commit the changes of your current branch)
  • create a new branch and switch to it. You should never work in your local cvshead branch.
  • fix your issue with your favorite IDE.
  • commit, push and do a pull request.

Working on 1.9 or earlier branches

This is just a little bit more complicated that working on 2.0. Please read the previous chapter before executing this one. You are going to create a new folder for working in 1.9. Actually you could work in the same folder that 2.0, but it will make thing a bit more messy and less easy to understand.

1. In a terminal

git clone git@github.com:YOUR_GITHUB_USERNAME/moodle.git ./YOUR_LOCAL_MOODLE_19_FOLDER/

2. Add the remote upstream. You want to update your local MOODLE_19_STABLE branch and your github (called "origin") MOODLE_19_STABLE branch from the official Moodle upstream. git remote add upstream git://git.moodle.org/moodle.git

3. Now you are going to create a local 1.9 branch. You will keep this branch updated (the branch will track upstream) and you are never going to work in it. git checkout -b MOODLE_19_STABLE upstream/MOODLE_19_STABLE

4. Create the update script in ./update_github cd YOUR_LOCAL_MOODLE_19_FOLDER git fetch upstream git checkout MOODLE_19_STABLE git pull git push origin refs/remotes/upstream/MOODLE_19_STABLE:MOODLE_19_STABLE

5. Run the script. Your github MOODLE_19_STABLE branch and your local MOODLE_19_STABLE branch are now updated.

6. You can now work on an issue. You can use a Git UI tool like SmartGit for these steps:

  • run the update script (don't forget to stash/commit the change of your current local branch, you are going to switch to MOODLE_19_STABLE local branch)
  • create a new branch for your issue and switch to it
  • fix your issue with your favorite IDE
  • commit, push and do a pull request