...
Implementor creates a new bug branch with the following naming convention: review-xxx-YYY-very_short_desc
xxx
= your initialsYYY
= Jira bug numbervery_short_desc
is an optional description of the bug
Note that the Jira bug number is mandatory. This means all changes must have an associated Jira bug.
$ git fetch origin
$ git checkout -b review-sdl-123-foo origin/master
...
Implementor performs all development in bug branch, this includes repeating the following steps many times until you are ready for review:
$ edit files
$ git add ...
$ git commit
$ git fetch origin
$ git rebase origin/master
$ sbt test
$ git push --force origin review-sdl-123-foo
Notice the frequent commits and pushes. This is a great way to ensure we do not accidentally lose commits. But be careful when using the --force option, as that will replace whatever branch is on the server.
Also, please see the following link about the commit message format:
http://tbaggery.com/2008/04/19/a-note-about-git-commit-messages.html
Please follow those standards, with the additional requirement that the last line should contain only the Jira bug number preceded by an empty line, e.g. "\nDFDL-123". If there are more than one bug related to the commit, separate them with commas.
...
$ git fetch origin
$ git rebase origin/master
$ sbt test
...
Implementor squashes commits into a reasonable patchset.
$ git rebase -i origin/master
Please pay attention to commit message format
...
Implementor ensures all tests pass
$ sbt test
...
Implementor pushes to ncsa opensource servers for review
$ git push --force origin review-sdl-123-foo
...
Reviewer reviews patchset. If changes are necessary:
...
$ git checkout review-sdl-123-foo
$ git fetch origin
$ git rebase origin/master
...
Implementor squashes review changes into a reasonable patchset
$ git rebase -i origin/master
...
Implementor ensures all tests pass
$ sbt test
...
Implementor sets master branch to bug branch and pushes
$ git checkout master
$ git reset --hard review-sdl-123-foo
$ git push origin # do not use the --force option here
...
Implementor deletes bug branch (both remote and local)
$ git push --delete origin review-sdl-123-foo
$ git branch -D review-sdl-123-foo
...