Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  1. Start the development on a feature by creating a new local feature branch. The standard is to name this according to the related JIRA issue.

    Code Block
    git checkout -b NAS-XXXX master
    • Optional: If the actual work is split between several subtasks, a further subtask branch from the parent feature branch should be created. Eg. for subtask NAS-YYYY

      Code Block
      git checkout -b NAS-YYYYY NAS-XXXX
  2. Do the development with frequent commits of our code changes. The commit message should be of the format: 

    Code Block
    NAS-XXXX: ${short description}
     
    NAS-XXXX ${issue summary}: ${long description}

    Only the first line is mandatory and should be no longer than 50. Following lines should be no longer that 72 chars log. 

    • Optional: Push the changes to a corresponding remote branch:

      Code Block
      git push origin NAS-XXXX
    • Optional: Merge master commits into the feature branch. This might be used to avoid having to merge a lots of changes from at the end of the feature development, and instead split these into smaller merges.

    • Optional: Create a Jenkins job for the branch to verify the code base still builds as changes are pushed to Github.
  3. Prepare for merge to master by:
    • Check that the build still works: 

      Code Block
      mvn clean install
    • Performing a review of the changes made in the feature development.
    • Merge the latest changes on the master branch into the feature branch. 

      Code Block
      git checkout master
      git pull
      git checkout NAS-XXXX
      git merge master

      Resolve any merge conflict.

    • Check that build still works.

  4. Merge to master
    • Merge to master: 

      Code Block
      git checkout master
      git merge NAS-XXX

      (we are still discussing whether to use "--no-ff" or not)

    • Check that build still works.

  5. Finally push the new feature code to Github master: 

    Code Block
    git push

All done (smile).

Removing branches

Branches may be removed after the development of a feature has finishes.

An effort should also be made at the end of a development cycle/release to clean out old branches.

Contributing patches through pull requests

...