From: "Usman Akinyemi via GitGitGadget" <gitgitgadget@gmail.com>
To: git@vger.kernel.org
Cc: Usman Akinyemi <usmanakinyemi202@gmail.com>,
Usman Akinyemi <usmanakinyemi202@gmail.com>
Subject: [PATCH v2] diff: update conflict handling for whitespace to issue a warning
Date: Wed, 13 Nov 2024 19:01:06 +0000 [thread overview]
Message-ID: <pull.1828.v2.git.git.1731524467045.gitgitgadget@gmail.com> (raw)
In-Reply-To: <pull.1828.git.git.1731347396097.gitgitgadget@gmail.com>
From: Usman Akinyemi <usmanakinyemi202@gmail.com>
Modify the conflict resolution between tab-in-indent and
indent-with-non-tab to issue a warning instead of terminating
the operation with `die()`. Update the `git diff --check` test to
capture and verify the warning message output.
Suggested-by: Phillip Wood <phillip.wood123@gmail.com>
Signed-off-by: Usman Akinyemi <usmanakinyemi202@gmail.com>
---
diff: update conflict handling for whitespace to issue a warning
Changes from V1
* Disable both WS_TAB_IN_INDENT and WS_INDENT_WITH_NON_TAB when both
are set.
Published-As: https://github.com/gitgitgadget/git/releases/tag/pr-git-1828%2FUnique-Usman%2Fmaster-v2
Fetch-It-Via: git fetch https://github.com/gitgitgadget/git pr-git-1828/Unique-Usman/master-v2
Pull-Request: https://github.com/git/git/pull/1828
Range-diff vs v1:
1: dfb80a7ff2d ! 1: 8531e80811c diff: update conflict handling for whitespace to issue a warning
@@ t/t4015-diff-whitespace.sh: test_expect_success 'ditto, but tabwidth=1 (must be
echo "foo ();" >x &&
- test_must_fail git diff --check
+ git diff --check 2>error &&
-+ test_grep "warning: cannot enforce both tab-in-indent and indent-with-non-tab, removing tab-in-indent" error
++ test_grep "warning: cannot enforce both tab-in-indent and indent-with-non-tab, disabling both" error
'
test_expect_success 'check tab-in-indent excluded from wildcard whitespace attribute' '
@@ ws.c: unsigned parse_whitespace_rule(const char *string)
- if (rule & WS_TAB_IN_INDENT && rule & WS_INDENT_WITH_NON_TAB)
- die("cannot enforce both tab-in-indent and indent-with-non-tab");
+ if (rule & WS_TAB_IN_INDENT && rule & WS_INDENT_WITH_NON_TAB) {
-+ warning(_("cannot enforce both tab-in-indent and indent-with-non-tab, removing tab-in-indent"));
++ warning(_("cannot enforce both tab-in-indent and indent-with-non-tab, disabling both"));
+ rule &= ~WS_TAB_IN_INDENT;
++ rule &= ~WS_INDENT_WITH_NON_TAB;
+ }
return rule;
}
t/t4015-diff-whitespace.sh | 3 ++-
ws.c | 8 ++++++--
2 files changed, 8 insertions(+), 3 deletions(-)
diff --git a/t/t4015-diff-whitespace.sh b/t/t4015-diff-whitespace.sh
index 851cfe4f32c..849f1854fb9 100755
--- a/t/t4015-diff-whitespace.sh
+++ b/t/t4015-diff-whitespace.sh
@@ -808,7 +808,8 @@ test_expect_success 'ditto, but tabwidth=1 (must be irrelevant)' '
test_expect_success 'check tab-in-indent and indent-with-non-tab conflict' '
git config core.whitespace "tab-in-indent,indent-with-non-tab" &&
echo "foo ();" >x &&
- test_must_fail git diff --check
+ git diff --check 2>error &&
+ test_grep "warning: cannot enforce both tab-in-indent and indent-with-non-tab, disabling both" error
'
test_expect_success 'check tab-in-indent excluded from wildcard whitespace attribute' '
diff --git a/ws.c b/ws.c
index 9456e2fdbe3..3e9ce55d095 100644
--- a/ws.c
+++ b/ws.c
@@ -6,6 +6,7 @@
#include "git-compat-util.h"
#include "attr.h"
#include "strbuf.h"
+#include "gettext.h"
#include "ws.h"
unsigned whitespace_rule_cfg = WS_DEFAULT_RULE;
@@ -70,8 +71,11 @@ unsigned parse_whitespace_rule(const char *string)
string = ep;
}
- if (rule & WS_TAB_IN_INDENT && rule & WS_INDENT_WITH_NON_TAB)
- die("cannot enforce both tab-in-indent and indent-with-non-tab");
+ if (rule & WS_TAB_IN_INDENT && rule & WS_INDENT_WITH_NON_TAB) {
+ warning(_("cannot enforce both tab-in-indent and indent-with-non-tab, disabling both"));
+ rule &= ~WS_TAB_IN_INDENT;
+ rule &= ~WS_INDENT_WITH_NON_TAB;
+ }
return rule;
}
base-commit: facbe4f633e4ad31e641f64617bc88074c659959
--
gitgitgadget
next prev parent reply other threads:[~2024-11-13 19:01 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-11-11 17:49 [PATCH] diff: update conflict handling for whitespace to issue a warning Usman Akinyemi via GitGitGadget
2024-11-11 23:59 ` Junio C Hamano
2024-11-13 19:01 ` Usman Akinyemi via GitGitGadget [this message]
2024-11-14 2:15 ` [PATCH v2] " Junio C Hamano
2024-11-14 10:06 ` Phillip Wood
2024-11-14 11:29 ` Usman Akinyemi
2024-11-15 0:11 ` Junio C Hamano
2024-11-18 21:03 ` Usman Akinyemi
2024-11-19 0:36 ` Junio C Hamano
2024-11-19 16:49 ` Phillip Wood
2024-11-20 1:23 ` Junio C Hamano
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=pull.1828.v2.git.git.1731524467045.gitgitgadget@gmail.com \
--to=gitgitgadget@gmail.com \
--cc=git@vger.kernel.org \
--cc=usmanakinyemi202@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).