トップ 最新 追記

Catra's Diary

2005|01|02|03|05|06|07|10|
2006|05|07|09|10|11|
2007|06|07|08|
2008|01|02|07|09|11|12|
2009|06|
2010|03|07|
2011|01|
2013|05|

2008-09-27 [Saturday]

_ fastladder (svn trunk) を git-svn で管理

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 で開発を進めたりというときには、 もう少し何かやり方を考える必要があるか。

ローカルで行っている変更は以下。

その他、rfeedfinder の修正と、opml の修正(OPML インポート時に呼び出される処理の中の get_head_value() で camelize(:lower) がなぜかうまく動いてなかったので、camelize() した文字列と最初の1文字を自前で足す形に変更。 ActiveSupport 内の String#first() が変な動作をしているというエラーだが、opml 単体ではエラーにならず、 rails (fastladder) 内でのみエラーとなっているので詳細は追いきれていない)。


トップ 最新 追記