Re: [PULL] svn pathnameencoding for git svn dcommit
- From
Kazutoshi Satoda <k_satoda@f2.dion.ne.jp>
- Date
- Feb 21, 2016, 13:12 UTC
- Message-ID
- <56C9B7B7.7030406@f2.dion.ne.jp>
- In-Reply-To
- <20160220233743.GA28606@dcvr.yhbt.net>
On 2016/02/21 8:37 +0900, Eric Wong wrote:
> Kazutoshi Satoda <k_satoda@f2.dion.ne.jp> wrote:
...
Show 13 quoted lines
>> Setting LC_ALL=C.UTF-8 in the test 11-12 made them pass on Cygwin. >> Same change made the previous version also pass. Please find the patch >> in the attached output of git format-patch. > > Thanks. However, I also wonder what happens on machines without > "C.UTF-8" support (are there still any?). > >> Could you please test with this on non-Cygwin environment? > > Works for me, at least. I've squashed your changes into the two > patches already queued up. I needed to split the > "export LC_ALL=C.UTF-8" statement into > "LC_ALL=C.UTF-8 && export LC_ALL" for portability.
Thank you.
Show 9 quoted lines
>> If it made no harm, please tell me what should I do to proceed this patch. >> Will you (Eric) please make further integration? Shall I make another >> series (v2) of patches? > > I've pushed out a new branch with your LC_ALL changes squashed > in. However I'm unsure if there's any new portability problems > with LC_ALL=C.UTF-8... > > Junio or anyone else: thoughts?
The test passed on my environment.
I've searched use of LC_ALL values other than "C". It seems be the best to move the variable a_utf8_locale in t9129 to lib-git-svn.sh and use it also in t9115.
t/Makefile:83
> $(MAKE) $(TSVN) GIT_SVN_NO_OPTIMIZE_COMMITS=0 LC_ALL=en_US.UTF-8
Here, "en_US.UTF-8" is hard-coded. I think this is at least more problematic than hard-coding "C.UTF-8". Beside hard-coding, does this take effect while test-lib.sh does LC_ALL=C ?
t/t9129-git-svn-i18n-commitencoding.sh:17
Show 11 quoted lines
> a_utf8_locale=$(locale -a | sed -n '/\.[uU][tT][fF]-*8$/{
> p
> q
> }')
>
> if test -n "$a_utf8_locale"
> then
> test_set_prereq UTF8
> else
> say "# UTF-8 locale not available, some tests are skipped"
> fiHere, a UTF-8 locale is took from "locale -a", and the test is skipped if not found. This gives "a_utf8_locale=C.utf8" on my Cygwin environment. There was a record that says the difference of ".utf8" and ".UTF-8" caused a failure. https://git.kernel.org/cgit/git/git.git/commit/?id=2de03ebe0635c93e182c3367140f999e79bdadcd
t/lib-gettext.sh:17
Show 6 quoted lines
> # is_IS.UTF-8 on Solaris and FreeBSD, is_IS.utf8 on Debian
> is_IS_locale=$(locale -a 2>/dev/null |
> sed -n '/^is_IS\.[uU][tT][fF]-*8$/{
> p
> q
> }')...
Show 5 quoted lines
> if test -n "$is_IS_locale" && > test $GIT_INTERNAL_GETTEXT_SH_SCHEME != "fallthrough" > then > # Some of the tests need the reference Icelandic locale > test_set_prereq GETTEXT_LOCALE
...
> else > say "# lib-gettext: No is_IS UTF-8 locale available" > fi
(the same logic is used for is_IS.ISO8859-1.)
Here, a UTF-8 locale with hard coded "is_IS" is took from "locale -a", and the test is skipped if not found. This gives "is_IS_locale=is_IS.utf8.utf8" on my Cygwin environment.
-- k_satoda