From: Phillip Wood Date: Fri, 26 Jun 2020 14:43:00 GMT Subject: Re: [PATCH v5 1/5] rebase -i: add --ignore-whitespace flag Message-ID: <78c32f2d-3af6-1514-51a3-1110531cbb88@gmail.com> In-Reply-To: <20200626133714.GB12504@danh.dev> Hi Danh On 26/06/2020 14:37, Đoàn Trần Công Danh wrote: > On 2020-06-26 10:55:24+0100, Phillip Wood wrote: >> From: Rohit Ashiwal >> >> Rebase is implemented with two different backends - 'apply' and >> 'merge' each of which support a different set of options. In >> particular the apply backend supports a number of options implemented >> by 'git am' that are not implemented in the merge backend. This means >> that the available options are different depending on which backend is >> used which is confusing. This patch adds support for the >> --ignore-whitespace option to the merge backend. This option treats >> lines with only whitespace changes as unchanged and is implemented in >> the merge backend by translating it to -Xignore-space-change. >> >> Signed-off-by: Rohit Ashiwal >> Signed-off-by: Phillip Wood >> --- >> Documentation/git-rebase.txt | 19 +++++++- >> builtin/rebase.c | 16 +++++-- >> t/t3422-rebase-incompatible-options.sh | 1 - >> t/t3436-rebase-more-options.sh | 60 ++++++++++++++++++++++++++ >> 4 files changed, 90 insertions(+), 6 deletions(-) >> create mode 100755 t/t3436-rebase-more-options.sh >> >> diff --git a/Documentation/git-rebase.txt b/Documentation/git-rebase.txt >> index f7a6033607..b003784f01 100644 >> --- a/Documentation/git-rebase.txt >> +++ b/Documentation/git-rebase.txt >> @@ -422,8 +422,23 @@ your branch contains commits which were dropped, this option can be used >> with `--keep-base` in order to drop those commits from your branch. >> >> --ignore-whitespace:: >> + Ignore whitespace differences when trying to reconcile >> +differences. Currently, each backend implements an approximation of >> +this behavior: >> ++ >> +apply backend: When applying a patch, ignore changes in whitespace in >> +context lines. Unfortunately, this means that if the "old" lines being >> +replaced by the patch differ only in whitespace from the existing >> +file, you will get a merge conflict instead of a successful patch >> +application. >> ++ >> +merge backend: Treat lines with only whitespace changes as unchanged >> +when merging. Unfortunately, this means that any patch hunks that were >> +intended to modify whitespace and nothing else will be dropped, even >> +if the other side had no changes that conflicted. >> + >> --whitespace=