mirror of
https://github.com/git/git
synced 2024-08-25 02:35:46 +00:00
![Ævar Arnfjörð Bjarmason](/assets/img/avatar_default.png)
In the preceding commit we moved away from using xgettext(1) to both generate the po/git.pot, and to merge the incrementally generated po/git.pot+ file as we sourced translations from C, shell and Perl. Doing it this way, which dates back to my initial implementation[1][2][3] was conflating two things: With xgettext(1) the --from-code both controls what encoding is specified in the po/git.pot's header, and what encoding we allow in source messages. We don't ever want to allow non-ASCII in *source messages*, and doing so has hid e.g. a buggy message introduced ina6226fd772
(submodule--helper: convert the bulk of cmd_add() to C, 2021-08-10) from us, we'd warn about it before, but only when running "make pot", but the operation would still succeed. Now we'll error out on it when running "make pot". Since the preceding Makefile changes made this easy: let's add a "make check-pot" target with the same prerequisites as the "po/git.pot" target, but without changing the file "po/git.pot". Running it as part of the "static-analysis" CI target will ensure that we catch any such issues in the future. E.g.: $ make check-pot XGETTEXT .build/pot/po/builtin/submodule--helper.c.po xgettext: Non-ASCII string at builtin/submodule--helper.c:3381. Please specify the source encoding through --from-code. make: *** [.build/pot/po/builtin/submodule--helper.c.po] Error 1 1.cd5513a716
(i18n: Makefile: "pot" target to extract messages marked for translation, 2011-02-22) 2.adc3b2b276
(Makefile: add xgettext target for *.sh files, 2011-05-14) 3.5e9637c629
(i18n: add infrastructure for translating Git with gettext, 2011-11-18) Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com> Signed-off-by: Jiang Xin <zhiyou.jx@alibaba-inc.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
35 lines
513 B
Bash
Executable file
35 lines
513 B
Bash
Executable file
#!/bin/sh
|
|
#
|
|
# Perform various static code analysis checks
|
|
#
|
|
|
|
. ${0%/*}/lib.sh
|
|
|
|
make coccicheck
|
|
|
|
set +x
|
|
|
|
fail=
|
|
for cocci_patch in contrib/coccinelle/*.patch
|
|
do
|
|
if test -s "$cocci_patch"
|
|
then
|
|
echo "$(tput setaf 1)Coccinelle suggests the following changes in '$cocci_patch':$(tput sgr0)"
|
|
cat "$cocci_patch"
|
|
fail=UnfortunatelyYes
|
|
fi
|
|
done
|
|
|
|
if test -n "$fail"
|
|
then
|
|
echo "$(tput setaf 1)error: Coccinelle suggested some changes$(tput sgr0)"
|
|
exit 1
|
|
fi
|
|
|
|
make hdr-check ||
|
|
exit 1
|
|
|
|
make check-pot
|
|
|
|
save_good_tree
|