annotate CONTRIBUTING @ 46834:535de0e34a79

rebase: filter out descendants of divergence-causing commits earlier `hg rebase` treats obsolete commits differently depending what has happened to the commit: 1) Obsolete commit without non-obsolete successors: Skipped, and a note is printed ("it has no successor"). 2) Obsolete commit with a successor in the destination (ancestor of it): Skipped, and a note is printed ("already in destination"). 3) Obsolete commit with a successor in the rebase set: The commit and its descendants are skipped, and a note is printed ("not rebasing <commit> and its descendants as this would cause divergence"), unless `allowdivergence` config set. 4) Obsolete commit with a successor elsewhere: Error ("this rebase will cause divergences"), unless `allowdivergence` config set. Before this patch, we did all those checks up front, except for (3), which was checked later. The later check consisted of two parts: 1) filtering out of descendants, and 2) conditionally printing message if the `allowdivergence` config was not set. This patch makes it so we do the filtering early. A consequence of filtering out divergence-causing commits earlier is that we rebase commits in slightly different order, which has some impact on tests. Differential Revision: https://phab.mercurial-scm.org/D10249
author Martin von Zweigbergk <martinvonz@google.com>
date Fri, 19 Mar 2021 22:52:59 -0700
parents a492610a2fc1
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
30084
a492610a2fc1 contributing: add new file with a pointer to the wiki
Augie Fackler <augie@google.com>
parents:
diff changeset
1 Our full contribution guidelines are in our wiki, please see:
a492610a2fc1 contributing: add new file with a pointer to the wiki
Augie Fackler <augie@google.com>
parents:
diff changeset
2
a492610a2fc1 contributing: add new file with a pointer to the wiki
Augie Fackler <augie@google.com>
parents:
diff changeset
3 https://www.mercurial-scm.org/wiki/ContributingChanges
a492610a2fc1 contributing: add new file with a pointer to the wiki
Augie Fackler <augie@google.com>
parents:
diff changeset
4
a492610a2fc1 contributing: add new file with a pointer to the wiki
Augie Fackler <augie@google.com>
parents:
diff changeset
5 If you just want a checklist to follow, you can go straight to
a492610a2fc1 contributing: add new file with a pointer to the wiki
Augie Fackler <augie@google.com>
parents:
diff changeset
6
a492610a2fc1 contributing: add new file with a pointer to the wiki
Augie Fackler <augie@google.com>
parents:
diff changeset
7 https://www.mercurial-scm.org/wiki/ContributingChanges#Submission_checklist
a492610a2fc1 contributing: add new file with a pointer to the wiki
Augie Fackler <augie@google.com>
parents:
diff changeset
8
a492610a2fc1 contributing: add new file with a pointer to the wiki
Augie Fackler <augie@google.com>
parents:
diff changeset
9 If you can't run the entire testsuite for some reason (it can be
a492610a2fc1 contributing: add new file with a pointer to the wiki
Augie Fackler <augie@google.com>
parents:
diff changeset
10 difficult on Windows), please at least run `contrib/check-code.py` on
a492610a2fc1 contributing: add new file with a pointer to the wiki
Augie Fackler <augie@google.com>
parents:
diff changeset
11 any files you've modified and run `python contrib/check-commit` on any
a492610a2fc1 contributing: add new file with a pointer to the wiki
Augie Fackler <augie@google.com>
parents:
diff changeset
12 commits you've made (for example, `python contrib/check-commit
a492610a2fc1 contributing: add new file with a pointer to the wiki
Augie Fackler <augie@google.com>
parents:
diff changeset
13 273ce12ad8f1` will report some style violations on a very old commit).