From 273c8ea4b15a31cbe243d5a508aa45c86ca9bbbc Mon Sep 17 00:00:00 2001 From: HonkingGoose <34918129+HonkingGoose@users.noreply.github.com> Date: Thu, 12 Nov 2020 13:53:24 +0100 Subject: [PATCH] docs: improve Branches and Commits Methodology (#7706) Co-authored-by: Rhys Arkins <rhys@arkins.net> --- docs/development/branches-commits.md | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/docs/development/branches-commits.md b/docs/development/branches-commits.md index 8e0d8301fc..c7079432c8 100644 --- a/docs/development/branches-commits.md +++ b/docs/development/branches-commits.md @@ -2,16 +2,20 @@ ## Multiple files per branch -Renovate can/should update multiple files in the same branch/PR. -e.g. it might be `package.json` and `yarn.lock`, or it might be multiple `package.json` files in a monorepo. +Renovate can, and should, update multiple files in the same branch/PR. + +e.g. Renovate can update the `package.json` and the corresponding `yarn.lock` file in the same commit. +The bot can also update multiple package files at once in a monorepo, including from different package managers. ## One commit per branch -To keep things neat from a user perspective, and simplify things from Renovate's perspective, we aim to always use just one commit per branch, even when multiple files need updating. +To keep things neat: Renovate always makes one commit per branch, even when multiple files need updating. +This way we can use the following logic: -A positive side effect of this is that it allows us to have a shortcut rule of, "If there's only one commit in the branch then it's clean, otherwise it must have been edited by users and we should stop updating it". +- If the last commit in a branch was using Renovate's identity, we assume it to be clean. +- If the last commit in a branch is by an identity other than Renovate's, the branch is assumed to have been edited by users and Renovate will not push to it any longer. ## Updating branches -If files in an already-existing branch need updating (e.g. an even newer version has been released), then we still aim to have just one commit. -We achieve this by force pushing with `git` to the existing branch. +If files in an already-existing branch need updating (e.g. an even newer version has been released), then we still want to have only one commit. +Renovate achieves this by force pushing the necessary changes to the existing branch with `git`. -- GitLab