Enforce change branch update via rebase, allow merge if really needed

This commit is contained in:
2017-08-25 09:42:40 +01:00
parent 4fd8d2f639
commit 0b2cde114a

View File

@@ -72,17 +72,20 @@ interpreted as described in [RFC 2119](https://tools.ietf.org/html/rfc2119).
needs a designated "merge target" branch, typically this will be the same
as the source branch.
7. Change branches MUST be regularly updated with any changes from their
source branch. It is RECOMMENDED this update is done by rebasing the
change branch on top of the source branch. Alternatively it can be done
by merging the source branch into the change branch.
8. You MUST NOT use a mixture of rebase and merge to update change branches
from their source branch. Pick one method for the project and/or team,
and stick to it.
9. After updating a change branch from its source branch you MUST push the
change branch to the remote server. If you updated the change branch via
rebasing, you will be required to do a force push, and you MUST use the
source branch. This MUST be done by rebasing the change branch on top of
the source branch.
8. After updating a change branch from its source branch you MUST push the
change branch to the remote server. Due to the nature of rebasing, you
will be required to do a force push, and you MUST use the
"--force-with-lease" git push option when doing so instead of the regular
"--force".
9. If there is a truly valid technical reason to not use rebase when
updating change branches, then you can update change branches via merge
instead of rebase. The decision to use merge MUST only be taken after all
possible options to use rebase have been tried and failed. For example,
people not understanding how to use rebase is NOT a valid reason to use
merge. If you do decide to use merge instead of rebase, you MUST NOT use
a mixture of both methods, pick one and stick to it.
4. Pull Requests
1. To merge a change branch into its merge target, you MUST open a "pull
request" (or equivalent).