Junio C Hamano <[email protected]> writes:
> Johannes Schindelin <[email protected]> writes:
>
>> But there may be hope. Since the character sequence "PRItime" is highly
>> unlikely to occur in Git's source code in any context other than the
>> format to print/parse timestamp_t, it should be possible to automate a the
>> string replacement
>>
>> git ls-files -z \*.[ch] |
>> xargs -0r sed -i 's/PRItime/PRIuMAX/g'
>>
>> (assuming, of course, that you use GNU sed, not BSD sed, for which the
>> `-i` needs to read `-i ''` instead) as part of the update?
>
> I somehow missed this bit.
>
> Given that this needs to be done only once every release by only one
> person (i.e. the l10n coordinator who updates *.pot file), as long
> as the procedure is automated as much as possible to ease the pain
> for the l10n coordinator and clearly described in the "Maintaining
> the po/git.pot file" section of po/README, something along that line
> does sound like a very tempting approach. If it works well, it is
> certainly much easier for normal developers than the other possible
> alternatives I mentioned in my previous response.
So, I was offline for most of the day yesterday and with this issue
blocking the release candidate, didn't manage to tag -rc1.
The use of "make pot" from the top-level is already described in
po/README, so the only thing that we need is something like this
change. I'll follow up this message with a sample output from the
updated process to ask others to sanity check the result (they are
tiny) in a separate message.
Thanks.
Makefile | 10 ++++++++++
1 file changed, 10 insertions(+)
diff --git a/Makefile b/Makefile
index ba4359ef8d..7069a12f75 100644
--- a/Makefile
+++ b/Makefile
@@ -2216,12 +2216,22 @@ LOCALIZED_SH += t/t0200/test.sh
LOCALIZED_PERL += t/t0200/test.perl
endif
+## Note that this is only meant to run by the localization coordinator
+## under a very controlled condition, i.e. (1) it is to be run in a
+## Git repository (not a tarball extract), (2) any local modifications
+## will be lost.
po/git.pot: $(GENERATED_H) FORCE
+ @for s in $(LOCALIZED_C) $(LOCALIZED_SH) $(LOCALIZED_PERL); \
+ do \
+ sed -e 's|PRItime|PRIuMAX|g' <"$$s" >"$$s+" && \
+ cat "$$s+" >"$$s" && rm "$$s+"; \
+ done
$(QUIET_XGETTEXT)$(XGETTEXT) -o$@+ $(XGETTEXT_FLAGS_C) $(LOCALIZED_C)
$(QUIET_XGETTEXT)$(XGETTEXT) -o$@+ --join-existing $(XGETTEXT_FLAGS_SH)
\
$(LOCALIZED_SH)
$(QUIET_XGETTEXT)$(XGETTEXT) -o$@+ --join-existing
$(XGETTEXT_FLAGS_PERL) \
$(LOCALIZED_PERL)
+ @git reset --hard
mv $@+ $@
.PHONY: pot