Bug #983

tool/file2lastrev.rb の文字コードの問題

Added by Martin Dürst about 3 years ago. Updated 10 months ago.

[ruby-dev:37702]
Status:Closed Start date:01/05/2009
Priority:Normal Due date:
Assignee:- % Done:

100%

Category:core
Target version:1.9.1 RC2
ruby -v:

Description

tool/file2lastrev.rb が cygwin でエラーを起こしている。
svn info の出力に US-ASCII でないバイトが入っているため、
エラーがでます。

file2lastrev.rb の先頭にある
ENV['LANG'] = ENV['LC_ALL'] = ENV['LC_MESSAGES'] = 'C'
は効果がないみたいです (このためにあるかどうかも分かりません)。

添付した patch で問題が納まったが、これは一般的な解決かどうか
分かりません。

よろしくお願いします。   Martin.

file2lastrev.patch (360 Bytes) Martin Dürst, 01/05/2009 05:06 pm

ruby-file2lastrev-svn-info.diff (671 Bytes) Kouhei Sutou, 01/06/2009 08:33 pm

Associated revisions

Revision 21486
Added by Yuki Sonoda about 3 years ago

* tool/file2lastrev.rb (get_revisions): fixes problem with svn on cygwin. [ruby-dev:37702]. Patch by Kouhei Sutou.

History

Updated by Yui NARUSE about 3 years ago

LANG=C しているのは、svn info の出力を英語で固定するためだと思います。
基本的には force_encoding するのではなく、svn info の方を何とかするべきだと思うのですが、
出力が US-ASCII のみになるようにできますかね?

Updated by Martin Dürst about 3 years ago

成瀬さんと同意ですが、一部の cygwin の場合はなぜか LANG=C の設定でも
曜日だけが日本語 (Shift_JIS) ででてしまう。subversion のレポを
調べたところ、そこの部分だけは APR (subversion が使っている Apache
Portable Runtime) に任せている。

自分の PC ではその問題はおこなないが、複数の学生のところでは起こります。
現在考えられるのは学生のところは cygwin の subversion (/usr/bin/svn) ではなく、
Windows の subversion (例えば /cygdrive/c/Program Files/svn とか) を使っている
ということです。その場合 ARP の挙動が違う可能性があります。subversion そのもの
はどの場合でも LANG 環境変数を考慮します。

Updated by Kouhei Sutou about 3 years ago

こういうときはsvn info --xmlを使った方がよいと思います。

Updated by Martin Dürst about 3 years ago

svn info --xml で確かめたところ、US-ASCII 文字以外はでません。

Updated by Yuki Sonoda about 3 years ago

  • Target version set to 1.9.1 RC2

Updated by Yuki Sonoda about 3 years ago

  • Status changed from Open to Closed
  • % Done changed from 0 to 100
Applied in changeset r21486.

Also available in: Atom PDF