Contributing to CTK: Difference between revisions

From Commontk
Jump to navigationJump to search
No edit summary
Line 8: Line 8:
** '''master''' Release preparation; starting point for new features (default)  
** '''master''' Release preparation; starting point for new features (default)  
** '''next''' Development; new features published here first  
** '''next''' Development; new features published here first  


= PreRequisites =
= PreRequisites =

Revision as of 14:47, 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 branch from a different fork

  • 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. You can now add, commit and publish your work.