Open Source 版 fastladder を check out する際に、そのまま Subversion で check out するのではなく、 git-svn を使ってローカルでもバージョン管理をしたいと思ったときの、作業記録(開始手順)。
各行は、「% で始まる行 - コマンド入力」、「# で始まる行 - コメント」、「それ以外 - コマンド実行結果出力」の 意味となっている。
% cd ~/work % git svn clone -T trunk -b branches http://fastladder.googlecode.com/svn fastladder # * ~/work/fastladder/ を作成し、ファイルを取得する。全リビジョンを取得するため少し時間がかかる。 # リビジョンが多くて時間がかかる場合は、-r HEAD オプションを追加することで、最新リビジョンのみ # 取得することができる(そのかわり変更履歴は参照できなくなる)。 # * ここでは Subversion レポジトリにおけるブランチ格納場所が branches (-b で指定)、 # トランク(幹)が trunk (-T で指定)であると指示している。 # あわせてタグ格納場所を -t で指定できるが、fastladder はまだタグを記録していないようなので、 # ここでは指定していない(そのため警告が出る)。 % cd fastladder % ls -aF ./ Fastladder.nsi freeimage-darwin/ register_as_service.bat ../ crawler.bat image_utils-win32/ server.bat .git/ fastladder/ migrate.bat unregister_from_service.bat # 中には .git/ が作成され、ファイルが展開されている。 % git branch * master % git branch -a * master m17n trunk # 作業用ブランチである master の他、リモート取得用に m17n (← branches 以下にあったディレクトリ)と # trunk (← トランクのディレクトリ)と言う名前のブランチが作成されている。 # (git branch -a でローカル/リモート両方のブランチが表示される) % cat .git/config [core] repositoryformatversion = 0 filemode = true bare = false logallrefupdates = true [svn-remote "svn"] url = http://fastladder.googlecode.com/svn fetch = trunk:refs/remotes/trunk branches = branches/*:refs/remotes/* % git svn rebase Current branch master is up to date. # 公開リポジトリで変更があった場合は、このコマンドで取得できるはず。
今回は、読み取り専用レポジトリを check out したため変更内容はローカルで保持するだけとなる (書き換え可能であるなら多分 git svn dcommit で反映できる)。
fastladder は動かす環境が限られるソフトウエアであり、他の PC で動かしたり修正したりということはあまりないけど、 Windows と Linux など複数の環境でテストしたり、デスクトップ PC とノート PC で開発を進めたりというときには、 もう少し何かやり方を考える必要があるか。
ローカルで行っている変更は以下。
未読件数を 10 件から 400 件に変更。
fastladder/config/initializers/constants.rb の MAX_UNREAD_COUNT を変更。
Index の追加
<URL:http://subtech.g.hatena.ne.jp/cho45/20080310/1205152588>
その他、rfeedfinder の修正と、opml の修正(OPML インポート時に呼び出される処理の中の get_head_value() で camelize(:lower) がなぜかうまく動いてなかったので、camelize() した文字列と最初の1文字を自前で足す形に変更。 ActiveSupport 内の String#first() が変な動作をしているというエラーだが、opml 単体ではエラーにならず、 rails (fastladder) 内でのみエラーとなっているので詳細は追いきれていない)。