Regression in 'git add -p' with 'interactive.diffFilter' since builtin version is default
- From
Philippe Blain <levraiphilippeblain@gmail.com>
- Date
- Aug 22, 2022, 22:15 UTC
- Message-ID
- <ecf6f5be-22ca-299f-a8f1-bda38e5ca246@gmail.com>
Hi Dscho,
I found a regression in the builtin 'add -i'. I use diff-so-fancy [1] as a pager and also use it via 'interactive.diffFilter'. With the builtin implementation, this errors with:
error: could not parse colored hunk header '?[36m?[1m?[38;5;13m@ file:1 @?[1m?[0m'
With the Perl version, it works fine.
This has been reported in the 'diff-so-fancy' project here: [2].
Here is a reproducer:
~~~bash #!/bin/bash
set -euEo pipefail
repo=repro rm -rf $repo
TEST_AUTHOR_LOCALNAME=author TEST_AUTHOR_DOMAIN=example.com GIT_AUTHOR_EMAIL=${TEST_AUTHOR_LOCALNAME}@${TEST_AUTHOR_DOMAIN} GIT_AUTHOR_NAME='A U Thor' GIT_AUTHOR_DATE='1112354055 +0200' TEST_COMMITTER_LOCALNAME=committer TEST_COMMITTER_DOMAIN=example.com GIT_COMMITTER_EMAIL=${TEST_COMMITTER_LOCALNAME}@${TEST_COMMITTER_DOMAIN} GIT_COMMITTER_NAME='C O Mitter' GIT_COMMITTER_DATE='1112354055 +0200' export GIT_AUTHOR_EMAIL GIT_AUTHOR_NAME export GIT_COMMITTER_EMAIL GIT_COMMITTER_NAME export GIT_COMMITTER_DATE GIT_AUTHOR_DATE export HOME=
git -c init.defaultBranch=unimportant init $repo cd $repo date>file git add file git commit -m file git clone https://github.com/so-fancy/diff-so-fancy.git date>>file export PATH="diff-so-fancy:$PATH" git -c interactive.diffFilter="diff-so-fancy --patch" -c add.interactive.useBuiltin=false add -p < <(echo y) date>>file git -c interactive.diffFilter="diff-so-fancy --patch" add -p ~~~
Cheers,
Philippe.
[1] https://github.com/so-fancy/diff-so-fancy [2] https://github.com/so-fancy/diff-so-fancy/issues/437