月別アーカイブ: 2010年10月

VSSからSubversionへの移行

社内でVSSによって管理されていたプロジェクトがいくつかあったんだけど、それを一気にSubversionで管理しましょうということになった。
理由としては、一部管理されているファイルをSJISではなくUTFにする必要性があったのだが、VSSの相違点比較ではUTFの比較が対応されてなかったのが一因。
また、チェックインからの環境への配置をできるだけ自動化したいという試みがあったためである。

VSSからSubversionへ移行するにはss2svn.exeを使う方法があるらしいが、Webで見ている限りではうまく言ってないようだ。
それに代わるものとして、ss2svn.plを利用した方法が紹介されていたが、これが思ったようにはいかずにずいぶんと手こずってしまったのでまとめたい。

参考サイト

前提

  • VSSのバージョン
    • VSSはちょっと古いVisualStudio6のもの。ただ、基本的にはVisualStudioの後継でもそんなに大きな変更はないのではないかと思っている。VisualStudio2008はUTFに対応しているらしい(未確認)ので、もしかしたら構造が違うのかもしれない。
  • Subversion
    • 面倒なのでTracLightningを利用している

インストールするもの

  • ss2svn.pl
  • ActivePerl
  • JCode(パールモジュール)
  • File-MMagic(パールモジュール)
    • JCodeとFile-MMagicはPPMを利用すると楽

C:\>ppm install Jcode
C:\>ppm install File-MMagic

準備

  • PATHにVSSのパスをセットする

SET PATH=%PATH%;C:\Program Files\Microsoft Visual Studio\COMMON\VSS\win32

  • SSDIRにVSSのレポジトリをセットする

SET SSDIR=\\SERVERNAME\REPO_PATH
※「\\SERVERNAME\REPO_PATH」はVSSのデータディレクトリへのパス

  • SSJP.DLLの退避(VSSフォルダのWin32内のSSJP.DLLをリネームする)

実行

  • 1.移行先のSubversionインストールサーバーにてレポジトリを生成する。
    • TracLightningを利用していると、通常はTracまで作られてしまうのでsvnadminコマンドでSubversionのレポジトリのみ作る。ここでTracまで作ってしまってもいいのだが、この場合はTrac上のタイムラインが、すべて移行実行日のコミット扱いになってしまう。

svnadmin create E:\TracLight\project\hoge

  • 2.pre-revprop-change.bat設定
    • 中身をexit 0のみにしたpre-revprop-change.batをsvnのhooksに入れる。怖いからsvnのレポジトリフォルダにも入れておいた
  • 3.Subversion側にユーザーを追加
    • 予め、VSS側に登録されていたユーザーを登録しておく。この時、例え実際には違ったとしてもユーザ名とパスワードを同一にしておくと楽
  • 4.ss2svn.plの認証部分を変更する
    • 1462行目付近でSvnへのログイン認証設定があるのでここを改変する。

$cmd = “$cmd –username \”$self->{user}\” “
. “–password \”$self->{password}\””;

$cmd = “$cmd –username \”$self->{user}\” “
. “–password \”$self->{user}\””;

に変更。認証を通すようにした

  • 5.ss2svn.plを実行する

vss2svn.pl –vssproject $/REPO/NAME –svnrepo http://REPO/URL –setdates –utf8 –vsslogin”admin;”
※「$/REPO/NAME」は移行対象のプロジェクトへのSSDIRからの相対パス
※「http://REPO/URL」は移行先Subversionのレポジトリへのパス

よくわからないが、–vsslogin設定がないと反応なしになった

  • 6.TRACの作成
    • create-project.batを一部改編してcreate-project2.batを作る。以下の2行を削除

if exist “%TL_PROJECT_HOME%\svn\%PROJNAME%” goto :EOF
svnadmin create “%TL_PROJECT_HOME%\svn\%PROJNAME%”

コマンドでプロジェクト作成

C:\>create-project.bat hoge

後処理

・SSJP.DLLを元に戻す

苦労した点

一番手こずったのはss2svn.plを実行時にFATAL ERRORが発生したこと。これが何度やっても同じバージョンで失敗する。
VSSのデータが破損しているのかと疑いをかけ、VSSのDataフォルダに対してAnalyzeコマンドを実行してみると「一貫性エラーが発生した」と出た。
AnalyzeでVオプションを追加しても意味なかったけど V4オプションを追加して実行してみると、問題となったファイルが発覚。どうやら、バージョンの途中でSJISからUTFに変換したファイルが、相違点をチェックしようとした際に問題を起こしていたみたい。
幸い、そういうファイルは少なかったのでこれは移行後に手動でコミットする形にして実行したら実行できた。

久しぶりの宿輪ゼミ

はて、いったいどれくらいぶりだろうか。
エコノミストである宿輪純一さんが開催している宿輪ゼミに参加してきた

宿輪純一 オフィシャルサイト
http://www.shukuwa.jp/

宿輪ゼミそのものもとても久しぶりなんだけど、そもそも外のイベントに参加すること自体が久しぶりな状態。
ちょっと懐かしい感じがしました。

肝心のゼミは相変わらず宿輪先生のオフレコトークと周囲を凍らせるギャグが飛び交う楽しいもので、昨今の中国事情から円高関連まで、色々と目新しい情報に触れる機会をいただきました。
やっぱりこういう場には定期的に参加したいなーと。

引っ越してからというものの、どうしても帰りの電車が早く無くなる&帰りが深夜になってしまう等からこういう場に出ることが億劫になってしまっているのも事実。
ただ、これらにたまにでも触れるということはその後の自分自身に大きな影響を与える…かもしれない。可能性のレベルだが、可能性を高める努力をしないことにはあまり物事はいい方向には向かいづらい。
不確定要素を排除する一方で、いい要素というのは少しでも持ち合わせていたいもの。
今後もできるだけ参加する方向で調整していこう。

皆さんもお試しにいかがでしょうか!
ご参加は、上記サイトの「宿輪ゼミ」メニューからどなたでも参加可能です。

嫁が実家に帰りました

といっても、もちろん喧嘩したというわけではなく、お世話になった先生のお墓参りです。

身重の状態で子供を連れていくのが辛いということで、1歳半になる長男と久々の二人きりの週末になります。
1歳半で少しずつ自分の意思を表現しようとしているのですが、まだちゃんとした言葉にはならず、何を言っているのかは半分くらいしかわかりません。

時々癇癪を起したように泣くという話を嫁からは聞いていたのですが、今日はなんとか機嫌が良かったのか終始ニコニコ。あまりお行儀がいいとはいえない状態ではありますが、まだ言葉の通じない段階。時々叱りはするものの基本的にはしたいように。
大きくなったなと思う一方で、まだまだ。

さらに下の子が生まれれば成長のスピードもまた大きく変わるんだろうな。ちょっと気が早いのですが、楽しみにしています

残念無念

今日、東京マラソンの事務局からメールが届いて残念ながら来年の東京マラソンの抽選に落選しましたって連絡がありました。
残念。

ただ、実際のところ最近走ることができていないです。
去年、毎週末のように休日出勤していたころでさえちゃんとトレーニングを行っていたにもかかわらず、休日出勤のない今にトレーニングができないのは何事~?って状態。
単純にだらけているだけなのかもしれない。

一つの要因として、4月に行われた高水山トレイル30kmをなんとか走りきることができたってのはあるかもしれない。
情けないことに、そこでプツッと切れてしまったのかな。

そういう意味では、新たな目標になりそうだった東京マラソンに落選してしまったのはちょっと残念。
目標がなくてもある程度私はできると思っていたんだけどな。

うーん、今週末は走る・・・ことができるかな?