From 0988e665e936d0c2c861dcd652bff9817e9446bf Mon Sep 17 00:00:00 2001 From: Junio C Hamano Date: Fri, 29 Oct 2021 13:48:58 -0700 Subject: Revert "logmsg_reencode(): warn when iconv() fails" This reverts commit fd680bc5 (logmsg_reencode(): warn when iconv() fails, 2021-08-27). Throwing a warning for each and every commit that gets reencoded, without allowing a way to squelch, would make it unpleasant for folks who have to deal with an ancient part of the history in an old project that used wrong encoding in the commits. diff --git a/Documentation/pretty-options.txt b/Documentation/pretty-options.txt index b3af850..54d8bb3 100644 --- a/Documentation/pretty-options.txt +++ b/Documentation/pretty-options.txt @@ -40,9 +40,7 @@ people using 80-column terminals. defaults to UTF-8. Note that if an object claims to be encoded in `X` and we are outputting in `X`, we will output the object verbatim; this means that invalid sequences in the original - commit may be copied to the output. Likewise, if iconv(3) fails - to convert the commit, we will output the original object - verbatim, along with a warning. + commit may be copied to the output. --expand-tabs=:: --expand-tabs:: diff --git a/pretty.c b/pretty.c index 73b5ead..9631529 100644 --- a/pretty.c +++ b/pretty.c @@ -671,11 +671,7 @@ const char *repo_logmsg_reencode(struct repository *r, * If the re-encoding failed, out might be NULL here; in that * case we just return the commit message verbatim. */ - if (!out) { - warning("unable to reencode commit to '%s'", output_encoding); - return msg; - } - return out; + return out ? out : msg; } static int mailmap_name(const char **email, size_t *email_len, diff --git a/t/t4210-log-i18n.sh b/t/t4210-log-i18n.sh index 0141f36..d2dfcf1 100755 --- a/t/t4210-log-i18n.sh +++ b/t/t4210-log-i18n.sh @@ -131,11 +131,4 @@ do fi done -test_expect_success 'log shows warning when conversion fails' ' - enc=this-encoding-does-not-exist && - git log -1 --encoding=$enc 2>err && - echo "warning: unable to reencode commit to ${SQ}${enc}${SQ}" >expect && - test_cmp expect err -' - test_done -- cgit v0.10.2-6-g49f6 From 9e8fe7b1c789fee4b7d0b219180cd26de80d730e Mon Sep 17 00:00:00 2001 From: Jeff King Date: Fri, 29 Oct 2021 17:10:03 -0400 Subject: log: document --encoding behavior on iconv() failure We already note that we may produce invalid output when we skip calling iconv() altogether. But we may also do so if iconv() fails, and we have no good alternative. Let's document this to avoid surprising users. Signed-off-by: Jeff King Signed-off-by: Junio C Hamano diff --git a/Documentation/pretty-options.txt b/Documentation/pretty-options.txt index 54d8bb3..dc685be 100644 --- a/Documentation/pretty-options.txt +++ b/Documentation/pretty-options.txt @@ -40,7 +40,9 @@ people using 80-column terminals. defaults to UTF-8. Note that if an object claims to be encoded in `X` and we are outputting in `X`, we will output the object verbatim; this means that invalid sequences in the original - commit may be copied to the output. + commit may be copied to the output. Likewise, if iconv(3) fails + to convert the commit, we will quietly output the original + object verbatim. --expand-tabs=:: --expand-tabs:: -- cgit v0.10.2-6-g49f6