dreamhost上で管理するsvnレポジトリのローカルミラーをsvkで作る自分用メモ

svkについての詳しい使い方等はいくらでもぐぐれば出るので書かない。
あくまで自分が初期設定のやり方を毎回忘れるので、それを思い出すためのメモ。

前提

coLinuxdebian上からsshdreamhostにログインできる。
プロジェクト名:score
djangoプロジェクト名:djangosite

dreamhost側作業

初回インポート用ディレクトリセット作成
% mkdir -p ~/tmp/proj
% cd ~/tmp/proj
% mkdir branches tags trunk
subversionリポジトリ作成
% svnadmin create --fs-type=fsfs $HOME/var/svn/repositories/score
お約束をインポート
% svn import ~/tmp/proj file:///$HOME/var/svn/repositories/score -m "Improt First"

ローカルdebian側作業

svk インスコ
% apt-get install svk
% svk --version                   
This is svk, version 1.08.
svk初期化
% svk depotmap --init 
以後面倒くさいのでssh鍵登録しておく
% eval `ssh-agent`
% ssh-add ~/.ssh/id_rsa
リポジトリミラー作成and同期
% svk mirror svn+ssh://ikoa@ikoan.org/home/ikoa/var/svn/repositories/score //mirror/score 
% svk sync //mirror/score
作業用ブランチ作成
% svk copy //mirror/score/trunk //score_trunk
作業用ディレクトリ作成
% mkdir -p ~/project/score/svn
% cd ~/project/score/svn
チェックアウト
% svk co //score_trunk trunk
(もしも、subversionリポジトリとして扱いたい場合は)
(% svn co file:///home/maedana/.svk/local/score_trunk trunk)
djangoプロジェクト作成
% django-admin.py startproject djangosite
リポジトリに追加
% svk add djangosite/
リモートのdreamhostへのコミット。
% svk push --verbatim //score_trunk
(一人運用なら問題ないけど複数人で使うリポジトリの場合はコミット前にdry-runするのが安全。事前にコンフリクトがわかるから。)
(% svk push -C --verbatim //score_trunk)

メリット

  • ネットワークの繋がってない場所でも作業可能な点
  • .svn/などの管理用ディレクトリを作業ディレクトリ内に持たない点
  • 通常のsvnレポジトリとしても使用可能な点(既存のレポジトリブラウザ等が使える)
  • コミット時(実質マージだけど)にsvk push -Cでdry-runできる。

あと個人的に最大のメリットだと思うのが

  • レポジトリの指定が//プロジェクト名だけで済む点
  • >この事はもっと評価されてもいいと思う。
  • >いちいちsvn co svn+ssh://hoge.jp/....とか面倒くさいよね?とくにコマンド派の人。

ようするに

みんなもっとsvk使おうよ!