Skip to content
mfojtik edited this page Apr 25, 2013 · 26 revisions

Basics

  • We use Github only for pull requests and patch reviews.
  • The deltacloud/deltacloud-core repository is just a mirror for the official ASF GIT repository.
  • The mirror script runs every 2 minutes so please be patient.
  • In order to have your patch accepted and pushed, you need to have signed the Apache Individual Contributor License Agreement
  • We use the official ASF repository for pushing patches (you need to be an ASF contributor with push rights for this), or you need to ask somebody with push rights to do so. If you are not Deltacloud API ASF project member with push rights, please ignore this information :-)

Adding Deltacloud Github repository

fork

  • Fork the "deltacloud/deltacloud-core" repository

  • Clone your fork (git clone https://github.com/YOUR_USERNAME/core.git)

  • Configure remotes

    • $ cd core
    • $ git remote add upstream https://github.com/deltacloud/deltacloud-core.git
    • $ git fetch upstream
  • More details: Official Github Guide

Basic GIT workflow

  • $ git checkout -b my_work_topic
  • Here comes the fun part... coding
  • $ git commit -m "Commit message"

(Tip: If there is a JIRA ticket for the topic you are working on, please add the JIRA ID into the commit message, for example, DTACLOUD-123)

  • Repeat the previous step until you finish the work on 'my_work_topic'

Pushing your work

Update the original repo

This will avoid possible merge conflicts and problems with applying your patches.

  • $ git checkout master
  • $ git pull

Push

  • $ git checkout my_work_topic
  • $ git rebase -i master (Tip: You can rename/squash commits at this point)
  • $ git push origin my_work_topic
  • Navigate to your forked Github repository and open a pull request (Pro Tip: You can use hub to automate this step)

Pull request / review process

  • Your pull request will appear here
  • All subscribers should be notified by email about your new pull request
  • Please follow our coding guidelines
  • In case nobody is taking the action of reviewing your pull request, please join the #deltacloud channel on irc.freenode.org and ask for review.
  • Once your pull request gets reviewed and ACK'ed, the person who did the review should close the pull request without merging it. Instead of merging, this person should push it into the official Apache GIT repository, or ask somebody with push rights to do so.

Contributors with push rights

Adding ASF as a remote branch

  • $ git remote add apache https://git-wip-us.apache.org/repos/asf/deltacloud.git
  • $ git fetch apache
  • $ git checkout -b apache apache/master

Pushing patches

Tip: To make all pull requests appear in your local GIT repository, you can follow this instructions. Then all you need to do is git fetch origin to get all pull requests locally and then you can checkout the single pull request directly by git checkout pr/NUMBER instead of git checkout topic_you_want_to_push

  • $ git checkout topic_you_want_to_push
  • $ git rebase -i apache
  • $ git checkout apache
  • $ git merge topic_you_want_to_push
  • $ git push apache refs/heads/apache:master

Note: Don't forget to git pull for 'apache' branch before merging changes :)