Skip to content

Commit 414f6c4

Browse files
committed
Merge #18283: doc: Explain rebase policy in CONTRIBUTING.md
fa12447 doc: Explain rebase/squash policy in CONTRIBUTING.md (MarcoFalke) Pull request description: ACKs for top commit: hebasto: re-ACK fa12447, typos fixed. laanwj: ACK fa12447 Tree-SHA512: b8f790a8ffa4f59f26b64befbea8acd92f3c548e577c35750a60dde94b4340258a540ad0db60a6de650db0156cbff9e1330c589c300db5253531fe6a16cdbcc9
2 parents 2926cbc + fa12447 commit 414f6c4

File tree

1 file changed

+19
-5
lines changed

1 file changed

+19
-5
lines changed

CONTRIBUTING.md

Lines changed: 19 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -117,12 +117,12 @@ At this stage, one should expect comments and review from other contributors. Yo
117117
can add more commits to your pull request by committing them locally and pushing
118118
to your fork until you have satisfied all feedback.
119119

120-
Note: Code review is a burdensome but important part of the development process, and as such, certain types of pull requests are rejected. In general, if the **improvements** do not warrant the **review effort** required, the PR has a high chance of being rejected. It is up to the PR author to convince the reviewers that the changes warrant the review effort, and if reviewers are "Concept NAK'ing" the PR, the author may need to present arguments and/or do research backing their suggested changes.
120+
Note: Code review is a burdensome but important part of the development process, and as such, certain types of pull requests are rejected. In general, if the **improvements** do not warrant the **review effort** required, the PR has a high chance of being rejected. It is up to the PR author to convince the reviewers that the changes warrant the review effort, and if reviewers are "Concept NACK'ing" the PR, the author may need to present arguments and/or do research backing their suggested changes.
121121

122-
Squashing Commits
123-
---------------------------
124-
If your pull request is accepted for merging, you may be asked by a maintainer
125-
to squash and or [rebase](https://git-scm.com/docs/git-rebase) your commits
122+
### Squashing Commits
123+
124+
If your pull request contains fixup commits (commits that change the same line of code repeatedly) or too fine-grained
125+
commits, you may be asked to [squash](https://git-scm.com/docs/git-rebase#_interactive_mode) your commits
126126
before it will be merged. The basic squashing workflow is shown below.
127127

128128
git checkout your_branch_name
@@ -149,6 +149,20 @@ the respective change set.
149149
The length of time required for peer review is unpredictable and will vary from
150150
pull request to pull request.
151151

152+
### Rebasing Changes
153+
154+
When a pull request conflicts with the target branch, you may be asked to rebase it on top of the current target branch.
155+
The `git rebase` command will take care of rebuilding your commits on top of the new base.
156+
157+
This project aims to have a clean git history, where code changes are only made in non-merge commits. This simplifies
158+
auditability because merge commits can be assumed to not contain arbitrary code changes. Merge commits should be signed,
159+
and the resulting git tree hash must be deterministic and reproducible. The script in
160+
[/contrib/verify-commits](/contrib/verify-commits) checks that.
161+
162+
After a rebase, reviewers are encouraged to sign off on the force push. This should be relatively straightforward with
163+
the `git range-diff` tool explained in the [productivity
164+
notes](/doc/productivity.md#diff-the-diffs-with-git-range-diff). To avoid needless review churn, maintainers will
165+
generally merge pull requests that received the most review attention first.
152166

153167
Pull Request Philosophy
154168
-----------------------

0 commit comments

Comments
 (0)