gawkworkflow: Repo State
2.4.1 Branches in the Savannah Repository
-----------------------------------------
There are several kinds of branches in the Savannah repository.
"Dead Branches"
Branches with the prefix 'dead-branches/' (such as
'dead-branches/const') hold code that was never merged into the
main code base. For example, a feature which was started, but
later deemed to be unwise to add. These branches keep the code
available, but they are not updated.
"Stable Branches"
These branches are used for bug fixes to released versions of
'gawk'. Sometimes new development (i.e., user-visible changes)
also occurs on these branches, although in a perfect world they
would be used only for bug fixes.
These branches have names like 'gawk-4.1-stable',
'gawk-4.0-stable', and so on. Once a release has been made from
'master', the previous stable branch is not updated. For example,
once 'gawk' 4.1.0 was released, no more work was done on
'gawk-4.0-stable'.
"The Main Branch"
This is the 'master' branch. Here is where most new feature
development takes place, and releases of new major versions are
based off of this branch.
Feature branches are typically based off this branch as well, and
when the feature is deemed complete, merged back into it.
"Feature Branches"
Often, a proposed new feature or code improvement is quite
involved. It may take some time to perfect, or the 'gawk'
development team may not be convinced that the feature should be
kept.
For this purpose, the team uses branches prefixed with 'feature/'.
This prefix is used even for code that simply improves the
internals and does not make a user-visible change.
Having large changes on separate branches makes it easier for
members of the team to review the code, and also makes it easier to
keep the changes up-to-date with respect to 'master', since Git
excels at merging commits from one branch to another.