Branch Usage

From GCD
Revision as of 16:52, 28 October 2013 by Adia (talk | contribs) (Henry's initial proposal: https://groups.google.com/forum/#!msg/gcd-tech/Z4sQcoB6YqQ/UoALD9pUujsJ)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

GrandComicsDatabase/master

  • Always deployable to production, and always deployed to production. You can only fix something here if it's the most urgent of hot fixes.

GrandComicsDatabases/beta

  • Always deployable to beta, and usually deployed to beta unless we're trying out some more experimental branch. Nearly every fix should pass through the beta branch on its way to master. Hotfixes to production must always get into beta (we should sort out the best way to do this- there are example strategies online).

GrandComicsDatabase/<group project>

  • Only exists if we've collectively agreed that something needs its own branch separately from beta. The branch should come off of GrandComicsDatabase/beta.

local/master

  • You should almost never do anything here. You should rebase to avoid merge commits

local/beta

  • You can do simple stuff here, although you should rebase or pull --rebase to avoid merge commits. However, it's better to use...

local/<personal project>

  • Never pushed to the server, but you can post code reviews diffing from local/beta which should be sync'd to GrandComicsDatabase/beta

local/<group project>

  • Can do work here, and diff directly to GrandComicsDatabase/<group project>. As always, should rebase to avoid merge commits where feasible.

<github user>/master

  • Should only ever be updated from GrandComicsDatabase/master, *NEVER* from a local clone of the user's repo, nor from a merge within the user's repo

<github user>/beta

  • Same deal as master- only updated from GrandComicsDatabase/beta

<github user>/<group project>

  • Again, same deal, only from GrandComicsDatabase/<group project>

<github user>/<user project>

  • It's your project, in your repo, do what you want. Try not to tangle up merge commits too much. When you want to merge this back in, you should submit a pull request from it into one of GrandComicsDatabase/<group project> or GrandComicsDatabase/<beta>. Once it's pulled over there, you can then update your <github user>/whatever from the GrandComicsDatabase/whatever version. Never merge over within your own repo, unless it's from one user project to another. Again, you can do whatever with those.