The solution to these problems is to always use a release branch A release branch is just a branch in the version control system (see rama (branch))  on which the code destined for this release can be isolated from mainline development