зеркало из https://github.com/microsoft/git.git
Merge branch 'jk/log-warn-on-bogus-encoding'
Doc update plus improved error reporting. * jk/log-warn-on-bogus-encoding: docs: use "character encoding" to refer to commit-object encoding logmsg_reencode(): warn when iconv() fails
This commit is contained in:
Коммит
bfe37f3dc5
|
@ -11,7 +11,7 @@ gui.displayUntracked::
|
|||
in the file list. The default is "true".
|
||||
|
||||
gui.encoding::
|
||||
Specifies the default encoding to use for displaying of
|
||||
Specifies the default character encoding to use for displaying of
|
||||
file contents in linkgit:git-gui[1] and linkgit:gitk[1].
|
||||
It can be overridden by setting the 'encoding' attribute
|
||||
for relevant files (see linkgit:gitattributes[5]).
|
||||
|
|
|
@ -33,14 +33,16 @@ people using 80-column terminals.
|
|||
used together.
|
||||
|
||||
--encoding=<encoding>::
|
||||
The commit objects record the encoding used for the log message
|
||||
Commit objects record the character encoding used for the log message
|
||||
in their encoding header; this option can be used to tell the
|
||||
command to re-code the commit log message in the encoding
|
||||
preferred by the user. For non plumbing commands this
|
||||
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 output the original object
|
||||
verbatim, along with a warning.
|
||||
|
||||
--expand-tabs=<n>::
|
||||
--expand-tabs::
|
||||
|
|
6
pretty.c
6
pretty.c
|
@ -671,7 +671,11 @@ 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.
|
||||
*/
|
||||
return out ? out : msg;
|
||||
if (!out) {
|
||||
warning("unable to reencode commit to '%s'", output_encoding);
|
||||
return msg;
|
||||
}
|
||||
return out;
|
||||
}
|
||||
|
||||
static int mailmap_name(const char **email, size_t *email_len,
|
||||
|
|
|
@ -131,4 +131,11 @@ 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
|
||||
|
|
Загрузка…
Ссылка в новой задаче