[Hiki-dev:00812] Re: subversionバックエンド win32対応 ちょこっと改善

アーカイブの一覧に戻る

Atsushi Koga kog****@ceres*****
2005年 6月 17日 (金) 00:26:12 JST


kog です。

> パッチを拝見しましたが、わざわざ別ファイルにしたりメソッド切りだししたり
> するのは大げさなので、initialize 時に Windows かどうか判断して適当に処理
> するようにしました。というわけで svn.rb だけの変更で済ませましたので、い
> ちおう確認してください。

了解です。
テストしてみた結果、1箇所違ってるようなのでパッチをつけます。

>> * HikiFarmのリポジトリがローカルかどうかのチェックを厳しく
>
> ここ、パッチの意図がわかりませんでした。
>
> -    if @repos_root =~ /:/ and @repos_root.split(/:/)[1] != "local"
> +    if @repos_type == 'cvs' and @repos_root =~ /:/ and
> @repos_root.split(/:/)[1] != "local"
>
> これだと、'cvs' でない場合は素通しになるのですが、そういう意図じゃないで
> すよね?

そういう意図です。
svnのwin32対応版の場合、
file:///c:/home/head/var/svn/... ---(1)
か
file:///c|/home/head/var/svn/... ---(2)
みたいにURLを指定するんですが、(1)を意識して設定すると
かならずエラーになります。
(2)だと、svnadmin create するときに変換しないといかんのと、
普通Windowsだと c:\hoge\fuga みたいに指定しますから、
hikifarm の repos_root には
c:/home/head/var/... みたいに書けるようにしたいんです。

もともとのソースのlocalのチェックは多分
cvs -d :local:/hoge/fuga ...
みたいなのをチェックしたい意図なんだと思ったのと、
hisroty.rb でも cvs, svnきめうちになっていることから、
この条件を追加しました。

最初は ReposDefault以下のクラスのクラスメソッドでチェックできたら
hikifarm/index.cgi からcvs依存が少し減ってかっこいいかなと思って
いじりはじめたのですが途中で挫折しました orz。

>> * mingw32で使うと、localtime.to_sが漢字交じりになるので化ける対応
>
> うーむ。別にいまのままでもいいように思いますが、何か不具合ありますか?

mingwだと

C:\Documents and Settings\kog>ruby -ve 'puts Time.now'
ruby 1.8.2 (2004-12-25) [i386-mingw32]
Thu Jun 16 23:21:47 東京 (標準時) 2005

になるので、やっぱり化けないようにしたいです。
会社で主に使ってるもんですから、
都合を知らない人に説明してもわかってもらえないのと、
できればHikiに好意を持ってもらいたいし。
# 活用してくれたらもっとうれしいのになあ>会社の人たち

パッチを送り付けといてなんですが、
フォーマットをそのまま決めうちにするよりは下みたいなプラグインで

eval('
class Time
  def to_s
    self.strftime("%Y-%m-%d(%a) %H:%M:%S")
  end
end
', TOPLEVEL_BINDING)

再定義しちゃってもいいのかもしれません。
そしたら、他の Time.to_s する箇所(プラグイン含め)を
いちいちチェックしなくても全部救えるかもしれませんし、
フォーマットだけ変更しやすいかも?
# テストはしてみて機能するのは確認しています。

strftimeの出力を再度パースするようなケース
ってそうそうないとは思いますから副作用はほとんどないんじゃないか
と思いますが、ちょっと強引でしょうか。

以上
-------------- next part --------------
テキスト形式以外の添付ファイルを保管しました...
ファイル名: svn.rb.patch
型:         application/octet-stream
サイズ:     522 バイト
説明:       無し
ダウンロード 


Hiki-dev メーリングリストの案内
アーカイブの一覧に戻る