Hiki on Rack again

投稿者 okkez 2009-08-24 15:41:00 GMT

Hiki の Rack 対応のために Hiki の svn リポジトリに rack ブランチを切りました。 一応、ページの編集はできます。

動作確認してないのは

  • XML-RPC
  • ほとんどのプラグイン

です。

で、ローカルでの開発には git-svn を使っています。 使ってみた感じでは、いい感じだったのでちょっと手順をメモしておきます。

branches/rack は先に svn cp で作っておきました。 Hiki は svn の 標準的なディレクトリ構成になっているので -s オプションでいけました。

$ git svn clone --prefix svn/ -s https://svn.sourceforge.jp/svnroot/hiki/hiki/ hiki-git
$ git br -a
  svn/hitoshi
  svn/rack
  svn/tags/V0_4_2a
........ (tags/ なブランチが多いので略)
  svn/tags/v0_8_8
  svn/tags/v0_8_8_1
  svn/trunk
  svn/v0_5_branch
  svn/v0_6
  svn/v0_8_8
$ git br
* master
$ git svn info
Path: .
URL: https://svn.sourceforge.jp/svnroot/hiki/hiki/trunk
Repository Root: https://svn.sourceforge.jp/svnroot/hiki
Repository UUID: 684b846f-27f2-41ea-b66a-77a1bafa84c1
Revision: 1006
Node Kind: directory
Schedule: normal
Last Changed Author: fdiary
Last Changed Rev: 1006
Last Changed Date: 2009-08-24 14:53:26 +0900 (月, 24  8月 2009)

最初にできる master ブランチで git svn info を実行してみて URL が trunk じゃなかったら master を作り直した方が いいと思います。こんな感じです。

$ git co -b master2 remotes/svn/trunk
$ git br -D master
$ git br -m master2 master
$ git svn info
Path: .
URL: https://svn.sourceforge.jp/svnroot/hiki/hiki/trunk
Repository Root: https://svn.sourceforge.jp/svnroot/hiki
Repository UUID: 684b846f-27f2-41ea-b66a-77a1bafa84c1
Revision: 1006
Node Kind: directory
Schedule: normal
Last Changed Author: fdiary
Last Changed Rev: 1006
Last Changed Date: 2009-08-24 14:53:26 +0900 (月, 24  8月 2009)

この状態で master ブランチを編集して git svn dcommit すると svn の trunk に反映されます。 次に svn の rack ブランチをローカルでいじるためのブランチを用意します。

$ git co -b rack remotes/svn/rack
$ git svn info
Path: .
URL: https://svn.sourceforge.jp/svnroot/hiki/hiki/branches/rack
Repository Root: https://svn.sourceforge.jp/svnroot/hiki
Repository UUID: 684b846f-27f2-41ea-b66a-77a1bafa84c1
Revision: 1007
Node Kind: directory
Schedule: normal
Last Changed Author: okkez
Last Changed Rev: 1007
Last Changed Date: 2009-08-25 00:33:07 +0900 (火, 25  8月 2009)

URL が変わっていることに注意してください。 これでこのブランチをいじって git svn dcommit すると svn の rack ブランチに反映されます。

trunk の変更を rack ブランチに取り込む場合は git merge を使うのではなく、 git format-patch と git am を使うと綺麗に出来るようです。

trunk への変更が一つの場合。

$ git co master 
$ git format-patch HEAD^
(0001-xxx.patch というファイルが作成される)
$ git co rack
$ git am <さっきのファイル> # 複数ある場合は複数指定可能。ちゃんと順番にパッチをあててくれる。
$ git svn dcommit

複数の変更を取り込む場合は、git format-patch HEAD^ とかやるといいです。 パッチの数が多くなるときは -o オプションで出力先ディレクトリを分けておくと便利かもしれません。

カテゴリ ,  | タグ , ,  | コメントなし | トラックバックなし

Rack 使ってみた

投稿者 okkez 2008-07-30 14:37:00 GMT

諸事情で web アプリを Rails を不使用で書く必要があったので cgi.rb の代わりに Rack を使ってみた。

主に上記を参考にして書いた。

ソースコードは整理して色々名前とか変えたら公開できるかもしれない。

感想

意外と短い行数で書けてびっくりした。 Rails の劣化版くらいなら一日くらいででっちあげられそうな感じ。

カテゴリ ,  | タグ  | コメントなし | トラックバックなし