зеркало из 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".
|
in the file list. The default is "true".
|
||||||
|
|
||||||
gui.encoding::
|
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].
|
file contents in linkgit:git-gui[1] and linkgit:gitk[1].
|
||||||
It can be overridden by setting the 'encoding' attribute
|
It can be overridden by setting the 'encoding' attribute
|
||||||
for relevant files (see linkgit:gitattributes[5]).
|
for relevant files (see linkgit:gitattributes[5]).
|
||||||
|
|
|
@ -33,14 +33,16 @@ people using 80-column terminals.
|
||||||
used together.
|
used together.
|
||||||
|
|
||||||
--encoding=<encoding>::
|
--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
|
in their encoding header; this option can be used to tell the
|
||||||
command to re-code the commit log message in the encoding
|
command to re-code the commit log message in the encoding
|
||||||
preferred by the user. For non plumbing commands this
|
preferred by the user. For non plumbing commands this
|
||||||
defaults to UTF-8. Note that if an object claims to be encoded
|
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
|
in `X` and we are outputting in `X`, we will output the object
|
||||||
verbatim; this means that invalid sequences in the original
|
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=<n>::
|
||||||
--expand-tabs::
|
--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
|
* If the re-encoding failed, out might be NULL here; in that
|
||||||
* case we just return the commit message verbatim.
|
* 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,
|
static int mailmap_name(const char **email, size_t *email_len,
|
||||||
|
|
|
@ -131,4 +131,11 @@ do
|
||||||
fi
|
fi
|
||||||
done
|
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
|
test_done
|
||||||
|
|
Загрузка…
Ссылка в новой задаче