Git Workflow¶
Getting Started¶
Install the command line client, download a GUI and have a look at the basic Atlassian tutorial.
GUI¶
SourceTree - Windows or MacOS X.
Gitg - Linux/GNOME.
Documentation¶
Clone the SeqAn repository¶
SeqAn is hosted on GitHub. Execute the following command to get the last sources:
~ # git clone https://github.com/seqan/seqan.git seqan
SeqAn Workflow¶
The SeqAn workflow is based on the Gitflow workflow by Atlassian.
Develop a feature or fix a bug¶
Follow the steps in “Mary and John begin new features” and “Mary finishes her feature”.
Perform your changes and commit them onto your feature branch.
Keep your commit history concise (see below) and write proper commit messages.
When the development is complete, push the feature branch to your repository on GithHub.
Make sure that you have signed the Contributor License Agreement
Delete your branch once it has been merged.
What to include in a commit¶
The git history of your contribution should be concise. Please follow the following hints:
A single commit should be a logical unit; don’t split a logical change over multiple commits and don’t address different issues in one commit.
Do not include revisions to your changes in your history, i.e. if you receive comments on your PR, change your previous commits via
git commit --amend
orgit rebase
, don’t just push more changes onto the history.Always split functional changes and style changes, including whitespace changes, into separate commits.
Follow our style for commit messages.
If you don’t follow these rules your contribution will be squashed into a single commit by the project member doing the merge.
An example of a good git log:
[FIX-#666] fix bug in sequence i/o module
[INTERNAL] remove empty lines
[FIX] repair apps that depended on broken behaviour
[TEST] add test that triggers #666
An example of a bad git log:
[FIX] fix bug in sequence i/o module
[INTERNAL] remove empty line
[FIX] forgot to change foo/bar.h
revert previous changes
revert "revert previous changes"
[FIX] correctly this time
[INTERNAL] remove another empty line
[FIX,TEST] fix apps and add test