Difference between revisions of "Contributing to CTK"

From Commontk
Jump to navigationJump to search
Line 34: Line 34:
 
* Then, from the branch ''new_feature'', you could just enter the following to backup/publish your work:
 
* Then, from the branch ''new_feature'', you could just enter the following to backup/publish your work:
 
  git push
 
  git push
 +
 +
= Checkout a published branch =
 +
* You may want to collaborate with an other developer and work conjointly on a feature.
 +
* Let's say, ''jcfr'' published the branch ''awesome_feature'' on his fork. You should do the following to check out his branch:
 +
git remote add jcfr git://github.com/jcfr/CTK.git
 +
git fetch jcfr
 +
git checkout -b awesome_feature refs/remotes/jcfr/awesome_feature
 +
* You should now have a local branch named awesome_feature

Revision as of 13:46, 13 July 2010

Home < Contributing to CTK

The present document aims at describing how a developer could efficiently contribute to CTK.

  • It's also assumed the developer is familiar with git. There are countless amount of resources available online. A good start point could the list presented on CMake/git page [2].
  • We use a topic-based workflow as documented here and thus define integration branches:
    • master Release preparation; starting point for new features (default)
    • next Development; new features published here first

PreRequisites

$ git config --global user.name "Your Name"
$ git config --global user.email "you@yourdomain.com"

Checkout your fork

cd MyProject
git clone git@github.com:<MYACCOUNT>/CTK.git
git remote add origin git@github.com:<MYACCOUNT>/CTK.git
git remote add upstream git@github.com/commontk/CTK.git

Publishing your branch

  • Having your own fork CTK allows you to backup and publish your work avoiding the hurge to merge[3]
git checkout -b new_feature
hack, hack, hack, add, commit
git push origin topic1:refs/heads/topic1
  • As a shortcut, you could also enter the following:
git config branch.topic1.remote origin
git config branch.topic1.merge refs/heads/topic1
  • Then, from the branch new_feature, you could just enter the following to backup/publish your work:
git push

Checkout a published branch

  • You may want to collaborate with an other developer and work conjointly on a feature.
  • Let's say, jcfr published the branch awesome_feature on his fork. You should do the following to check out his branch:
git remote add jcfr git://github.com/jcfr/CTK.git
git fetch jcfr
git checkout -b awesome_feature refs/remotes/jcfr/awesome_feature
  • You should now have a local branch named awesome_feature