Labs/Jetpack/FlightDeck/Code Workflow/Management Commands: Difference between revisions
(Created page with 'This article is inspired by [http://nvie.com/git-model A successful Git branching model]. = Main branches = *master *trunk == master == We use master branch for development c…') |
(release branches added) |
||
| Line 42: | Line 42: | ||
Push the master to the main repository | Push the master to the main repository | ||
git push main master | git push main master | ||
== release- == | |||
#May branch off from: '''master''' | |||
#Must merge back into: '''master''' and '''trunk''' | |||
#Branch naming convention: '''release-1.0a3''' where 1.0a3 is the target production version | |||
Release branches are created after the code is '''frozen'''. They support preparation of a new production release. They allow for minor last-minute bugfixes. By doing all of this work on a release branch, the master branch is cleared to receive features for the next release. | |||
=== ''workflow'' === | |||
Branch off from master | |||
git checkout -b release-1.0a3 | |||
Set version inside the settings and then commit the changes | |||
vi flightdeck/settings.py | |||
git commit flightdeck/settings.py -a "Bumped to version number 1.0a3" | |||
After the release is ready, merge into the production branch | |||
git checkout production | |||
git merge --no-ff release-1.0a3 | |||
Tag the version | |||
git tag -a 1.0a3 | |||
To keep the changes made in the release branch, we need to merge those back into master | |||
git checkout master | |||
git merge --no-ff release-1.0a3 | |||
If this would lead to a conflict resolve it and commit. Release branch is not needed anymore, delete it | |||
git branch -d release-1.0a3 | |||
Revision as of 09:28, 22 July 2010
This article is inspired by A successful Git branching model.
Main branches
- master
- trunk
master
We use master branch for development commits. That's the place where we will merge bug-#- hotfix-#- and release- branches.
trunk
Production branch. It is used to export code for production sites. That's the place where we will merge hotfix-#- and release- branches only.
Supporting branches
- bug-#-
- release-
- support-
- hotfix-#-
bug-#-
- May branch from: master
- Must merge back to: master
Branch naming convention: bug-1234-name_of_the_bug where 1234 is the number of the bug in bugzilla
These branches are used to develop new features for the upcoming or a distant future release. This branch exists for the time of development of this topic only. It's goal is to be merged back into master
workflow
Pull the bug-#- branch from developer john
git remote add -t bug-1234-name_of_the_bug john-577738-update_Bespin git@github.com:john/FlightDeck.git -f git checkout branch-1234-name_of_the_bug
Now it's possible to test if the feature is working. If so - merge it into the master
git checkout master git merge --no-ff bug-1234-name_of_the_bug
And delete the branch from your local repository
git branch -d bug-1234-name_of_the_bug
Push the master to the main repository
git push main master
release-
- May branch off from: master
- Must merge back into: master and trunk
- Branch naming convention: release-1.0a3 where 1.0a3 is the target production version
Release branches are created after the code is frozen. They support preparation of a new production release. They allow for minor last-minute bugfixes. By doing all of this work on a release branch, the master branch is cleared to receive features for the next release.
workflow
Branch off from master
git checkout -b release-1.0a3
Set version inside the settings and then commit the changes
vi flightdeck/settings.py git commit flightdeck/settings.py -a "Bumped to version number 1.0a3"
After the release is ready, merge into the production branch
git checkout production git merge --no-ff release-1.0a3
Tag the version
git tag -a 1.0a3
To keep the changes made in the release branch, we need to merge those back into master
git checkout master git merge --no-ff release-1.0a3
If this would lead to a conflict resolve it and commit. Release branch is not needed anymore, delete it
git branch -d release-1.0a3