Skip to content
dbarbier edited this page May 25, 2011 · 11 revisions

OCE git workflow

We are pretty liberal in accepting contributions. You can either fork https://github.com/tpaviot/oce or ask on our mailing list for write access on our repository. The guidelines describe in this page are meant to help everyone contributing. If you believe that they cause more harm than good, please feel free to discuss them.

General workflow

No development is performed on the master branch, this is an integration branch. Development happens on private branches, and when a developer thinks that her code is ready to merge into master, she requests a merge.

Private branches

Each developer can create her own branches under a private namespace. We usually choose a namespace based on our initials, but this naming is free as long as it is unambiguous. For instance, John Doe may decide to call his branches jd/fix-issue-13 or jd/mingw-port.

The right part should be as explicit as possible, so that other developers may understand what this branch is about. If you intend to work on long-lived branch, it may also be worth writing a page on this wiki to give more details.

There is no restriction on private branches, developers can do what they want. These branches may be rebased against master at any time without notice, this is why no branches should be based upon private branches of other people. Most of the time, branches are created from master.

Merges

When a developer believes that her branch is ready to be merged into master, she first renames her branch by replacing her own prefix by review/, logs into https://github.com/tpaviot/oce, switches to this new branch, and eventually performs a "Pull Request" by clicking on the top-right button. All OCE developers are then notified of this request, and will comment it. There are mostly three possibilities:

  1. Branch looks good and can be merged as is. Developers then usually write +1as a shorthand.
  2. Branch looks good, but could be improved by slight changes. Comment is usually in the form +1, but please rename variable foo into something more meaningful.
  3. Branch has problems and should not be merged. Then the request will be cancelled and you have to rename your branch to make it a private branch again.

Hopefully after a few days several developers have given their opinion and your branch will be processed. Of course, all developers are encouraged to review branches of other developers.

Clone this wiki locally