リポジトリブラウザでのSVN日本語ファイル(ディレクトリ)名表示

2,262 views
Skip to first unread message

ぼの

unread,
Apr 7, 2008, 5:14:57 AM4/7/08
to Redmine Users (japanese)
はじめまして。

redmine 0.6.3を使ってます。
リポジトリブラウザで、subversionのリポジトリを表示させると、日本語(UTF-8)のファイル名やディレクトリの表示がうまくされませんで
した。「リポジトリに、エントリ/リビジョンが存在しません」というエラーが・・・。

情報が特にみつからなかったので、ソースを見ながら勘で以下のパッチを作ってみました。
(ruby全然知らない状態で、ググった情報をもとに作ったいい加減なパッチです・・・)

Index: repositories_controller.rb
===================================================================
--- repositories_controller.rb (revision 1336)
+++ repositories_controller.rb (working copy)
@@ -18,6 +18,7 @@
require 'SVG/Graph/Bar'
require 'SVG/Graph/BarHorizontal'
require 'digest/sha1'
+require 'uri'

class ChangesetNotFound < Exception; end
class InvalidRevisionParam < Exception; end
@@ -185,7 +186,7 @@
@project = Project.find(params[:id])
@repository = @project.repository
render_404 and return false unless @repository
- @path = params[:path].join('/') unless params[:path].nil?
+ @path = URI.escape(params[:path].join('/')) unless
params[:path].nil?
@path ||= ''
@rev = params[:rev]
@rev_to = params[:rev_to]

これで、一応、表示されるようにはなりましたが、こんな修正で良いのかどうかが(悪影響があるのか)よくわかりません。
リポジトリブラウザの上部に表示されるパスが、エスケープコードのままであることも不満です。
(パス表示させている部分に、URI.unescapeをかければいいのかも知れないんですけどそれがどこかさっぱり・・・。)

どなたか、良いパッチ等をご教示いただければと。

ちなみに、リポジトリにはapache経由(http)でアクセスさせてます。

ぼの

unread,
Apr 16, 2008, 11:58:59 PM4/16/08
to Redmine Users (japanese)
0.7.0-RC1にアップデートした所、SVNリポジトリ内の日本語名ファイルも正しく表示されるようになりました・・・

suisui

unread,
May 20, 2008, 10:38:33 PM5/20/08
to Redmine Users (japanese)
0.7.1 です。

Fedora 上に Subversion + Apache2 でリポジトリを公開しています。
Subversion のリポジトリは " ttp://svn.server/Projects/日本語プロジェクト名" に作りました。

Redmine のプロジェクトのリポジトリ設定に、 "
ttp://svn.server/Projects/%E6%97%A5%E6%9C%AC%E8%AA%9E%E3%83%97%E3%83%AD%E3%82%B8%E3%82%A7%E3%82%AF%E3%83%88%E5%90%8D/branchs/2008-01-01"
と設定しました。(そのままの日本語パスではうまくいかなかったので)

リビジョン表示 ( ttp://redmine.server/repositories/revision/projectname?xxx) の
下の一覧には
□ /日本語プロジェクト名/branchs/2008-01-01/application-name/subfolders/
checkoutedfile.c 差分を見る
というかんじでコミットされたファイル一覧が出ます。

「差分を見る」のリンクは
ttp://redmine.server/repositories/diff/projectname/日本語プロジェクト名/branchs/2008-01-01/application-name/subfolders/checkoutedfile.c
となっていますが、
ttp://redmine.server/repositories/diff/projectname/application-name/subfolders/checkoutedfile.c
と書き換えると問題なく差分表示します。

考えられる事としては
・サブプロジェクトを登録する時の、Subversion 側のパス指定と Redmine のリポジトリ設定のパスは何か関連させる必要がある?
・そもそも設定で urlencode してから登録しないといけないところからうまくいってない

日本語を使っていないプロジェクトだと、ひょっとするとリビジョン表示のファイルパスは
□ /application-name/subfolders/checkoutedfile.c
と表示されるものなのでしょうか?

fmkt

unread,
May 20, 2008, 10:47:52 PM5/20/08
to Redmine Users (japanese)
こんにちは。

> 日本語を使っていないプロジェクトだと、ひょっとするとリビジョン表示のファイルパスは
> □ /application-name/subfolders/checkoutedfile.c
> と表示されるものなのでしょうか?

日本語を使っていない環境のは本家のを参考にするとわかりやすいと思います。

redmine r1441 のリビジョン
http://www.redmine.org/repositories/revision/redmine?rev=1441

リポジトリ名が日本語な環境は試したことが無いのでちょっとわかりませんね...
力添えできなく申し訳ありません。

では。
Reply all
Reply to author
Forward
0 new messages