VSSからSubversionの移行作業を行いました。
かなり手間取りましたが、まぁなんとか…
(参考にしたサイト)
ひだまりのなか、想ふことさん
http://hidamarinonaka.jugem.cc/?eid=104
http://hidamarinonaka.jugem.cc/?eid=105
参考というかほとんどそのままです。感謝感謝。
ちなみに、Perlは全く知りません。Subversionは使い始めたばかりです。
手順:
vss2svn.plを入手
参考サイトにあるとおり、miau's blog?さんのこちらからvss2svn.plをありがたく拝借。
ActivePerlのインストール
とりあえずPerlをインストールしないことには、はじまらなさそうなので…
使用したのは、ActivePerl 5.10.0.1003のMSI。
デフォルトのまま、インストールして終了。
とりあえず、vss2svn.plを実行
不足モジュールを追加インストールするために、とりあえず実行してみました。
自分の環境で不足していたのは、
JCode.pm
JulianDay.pm
MMagic.pm
ParseDate.pm
Timezone.pm
でした。検索&ダウンロードで、vss2svn.plが動く環境をセットアップ
VSSの設定
参考サイトにあるとおり、
SSDIRの設定
SSJP.DLLのりネーム
を行う。
あと、SS.EXEにパスを通す作業も。
つまづき1
当初は、VSS2005がインストールされた環境で試行錯誤していたのですが、全くうまくいかず、何が原因かもわからずじまい。
お手上げ状態だったので、しかなくHyper-V上にVSS6SP6dの環境をセットアップしました。移行のためだけにVMを使うことになろうとは…。
そして、振り出し(ActivePerlのインストール)に戻る。
つまづき2
VSSからプロジェクト単位でインポートがうまくいきませんでした。
そのため移行対象のプロジェクトがあるVSSから、必要のないプロジェクトをすべて削除するという荒業を使いました。
Subversionのインストール
vss2svn.plを実行すると、svn.exeをパスに追加するように要求されたので、Subversionをインストール。
ローカルに、移行用のリポジトリを作成。
環境変数にAPR_ICONV_PATHを設定。
pre-revprop-change.batを修正。
つまづき3
普段使用しているSubversionは、HTTPS経由でApacheにアクセスし、認証を行っています。しかし、vss2svn.plにて認証をかいくぐる方法がわからず、ローカルに認証不要のリポジトリを作成しました。
vss2svnの実行
あとは、引数を指定して実行するだけです。
--vssproject:vssプロジェクトディレクトリへのフォルダパス。
$/ 以外はうまくいかず。
--svnrepo:SubversionリポジトリへのURL。
https://~へ認証アクセスができず。file:///c:/~になりました。
というわけで、現在実行中です。無事終わってください。
かなり時間がかかるようで、確認は明日になりそう。
7/15追記
残念ながら、日本語コメントが文字化け。てか、本番VSSで試す前にテストしろよ>自分
vss2svn.plの881行目
$comment = Encode::encode('utf8', $comment) if $gCfg{utf8};
を
$comment = Encode::encode('utf8', decode('sjis',$comment)) if $gCfg{utf8};
とすることで、うまく行きました。