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 needs a designated "merge target" branch, typically this will be the same
as the source branch. as the source branch.
7. Change branches MUST be regularly updated with any changes from their 7. Change branches MUST be regularly updated with any changes from their
source branch. It is RECOMMENDED this update is done by rebasing the source branch. This MUST be done by rebasing the change branch on top of
change branch on top of the source branch. Alternatively it can be done the source branch.
by merging the source branch into the change branch. 8. After updating a change branch from its source branch you MUST push the
8. You MUST NOT use a mixture of rebase and merge to update change branches change branch to the remote server. Due to the nature of rebasing, you
from their source branch. Pick one method for the project and/or team, will be required to do a force push, and you MUST use the
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
"--force-with-lease" git push option when doing so instead of the regular "--force-with-lease" git push option when doing so instead of the regular
"--force". "--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 4. Pull Requests
1. To merge a change branch into its merge target, you MUST open a "pull 1. To merge a change branch into its merge target, you MUST open a "pull
request" (or equivalent). request" (or equivalent).