From a9fc40fb0ac3816fd7468e2785cbf856c32185a9 Mon Sep 17 00:00:00 2001 From: PastaPastaPasta <6443210+PastaPastaPasta@users.noreply.github.com> Date: Mon, 18 May 2020 12:26:42 +0000 Subject: [PATCH] add "Verifying a Rebase" section to CONTRIBUTING.md (#3487) Signed-off-by: Pasta --- CONTRIBUTING.md | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index f4a901a4de..f3a92c7b03 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -229,6 +229,25 @@ discussed extensively on the mailing list and IRC, be accompanied by a widely discussed BIP and have a generally widely perceived technical consensus of being a worthwhile change based on the judgement of the maintainers. +#### Verifying a Rebase + +When someone rebases their PR, it can often be very difficult to ensure that +extra changes were not included in that force push. This changes could be anything +from merge conflicts to someone attempting to sneak something into the PR. To check +that a PR is the same before and after force push, you can use the following function. +Place this function in your `~/.bashrc`. In order for this function to work, both the +before and after commits must be present locally. + +``` +function gfd() { + local fp1=$(git merge-base --fork-point develop $1) + local fp2=$(git merge-base --fork-point develop $2) + echo fp1=$fp1 + echo fp2=$fp2 + diff --color=always -u -I'^[^-+]' <(git diff $fp1..$1) <(git diff $fp2..$2) +} +``` + ### Finding Reviewers The review process is normally fairly responsive on the Dash Core repository, however