Junio C Hamano <gitster@xxxxxxxxx> writes: > Johannes Schindelin <Johannes.Schindelin@xxxxxx> 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