The SVA Bug Command
The great thing about release branches is that you can fix a bug in an
older release, without having to create a new release from the trunk
of your project. It's great because the trunk may contain new features
that may not be backwards compatible, or the trunk may currently be
unstable.
To fix a bug that exists in a specific release, you would have to
manually do the following:
- Branch from the release branch, creating a bug fix branch
- Fix the bug on the bug fix branch
- Test and commit your fix
- Merge the bug fix branch to the release branch
- Merge the bug fix branch to the trunk
- Make a new release
Step five is very important. It ensures that the bug fix makes its
way to the trunk, and therefore the next release.
SVA automates this process. It relies on the fact that you assign
unique bug identifiers to each bug using a bug tracking system. The
example below helps fix a bug with the ID of 5 on the latest release
branch:
$ sva bug 5
$ # ... fix and commit ...
$ sva bug --close 5