2008年09月19日

svkを使ってみる件

subversionのリポジトリを1人で適当に使っている時はべつにどんな状態でcommitしようとも、誰にも迷惑はかからなかった。
自分だけソースのバックアップのつもりで使って、ラクチンだった。
他の人が使うようになって、気軽にcommitしていたら、こんなのcommitしないでよ!みたいな事に…。
あぁ、あの自由なcommitがもう一度したい。

と、思ったのでsvkを使ってみる事にしました。
subversionはTortoiseSVNというGUIのツールが便利でしたが、svkはコマンドラインです。亀さんが便利だったのでsvnのコマンドは知りません…。

さて、インストールも終わって

svk depotmap --init

も済みました。
??これから何をすればいいの?

深く考えずに進みましょう。
なにやらミラーをするらしいです。

svk mkdir //mirror
svk mirror [subversionのリポジトリのパス] //mirror/[svkのリポジトリ?]


subversionのリポジトリのパスから、ローカルのmirrorの下にsvk用のリポジトリ?にコピーしてくるという事かな?
//mirrorは別にmirrorじゃなくてもいいらしいですが、普通mirrorにするみたい。
サーバのデータベースをローカルのデータベースにコピーするようなものですが。で、ローカルのデータベースに出し入れして、タイミングを見てサーバ側に書き戻すと。ふんふん。
ファイルが一杯コピーされてくるかと思ったらここではまだです。入れ物だけ準備?

svk sync //mirror/[svkのリポジトリ?]

で、subversionのリポジトリと同期させるようです。亀さんの「SVN チェックアウト」や「SVN 更新」に似てるけど、これはsubversionとのやり取りになるのですね。svkとのやり取りもあるから、混乱する…。

次はローカルでブランチを作るそうです。

svk mkdir //local
svk copy //mirror/[svkのリポジトリ?] //local/[svkのリポジトリ?]

ブランチって何?というかブランチって使ってないっす。今のところ常に道は1つです…。それは置いておいて。
どうもsvk syncはsubversionのブランチもsvkのリポジトリに取り込んでくるようです。なるほど。

そして大事な事。svkはmirrorから常にブランチを作成して、そのブランチに対して作業を行います。
mirrorのリポジトリに対して出し入れを行って、コミットすると、subversionのリポジトリに対してコミットを行うそうです!!
これではやろうとしている事と全然違っちゃいますね!

必ずmirrorのブランチを作成して作業しましょう!


で、svk mkdir //localしたらいきなりメモ帳が開いてビックリしました。
=== Please enter your commit message above this line ===

とメモ帳に表示されているので、コメントを書いてメモ帳を保存して終了しました。
svk copyしても同様にメモ帳が開きます。同じくコメント書いて保存終了。

次はチェックアウトです。
だんだん慣れてきた。ローカルのブランチ(//local/[svkのリポジトリ?])から作業ディレクトリにチェックアウトします。

cd \dev\project_dir
svk checkout //local/[svkのリポジトリ?]

で、だーっっとファイルがチェックアウトされてきます。

そのチェックアウトされたファイル達をいろいろ編集して、コミットです。これはローカルのブランチに対しての作業ですね!

cd \dev\project_dir\[checkoutされたフォルダ]
…色々編集…
svk commit

またしてもメモ帳。今度は修正されたファイルの情報が表示されています。
先頭に色々コメントを書いて保存終了すると、コミットの完了です!


svk pull //local/[svkのリポジトリ?]

subversionのリポジトリから、svkのローカルブランチを更新する。


svk push //local/[svkのリポジトリ?]

svkのローカルブランチで、subversionのリポジトリを更新する。
試したらローカルブランチ->ローカルミラー->subversionのリポジトリまで更新された。

※チェックアウトするのに、亀さんが使えるようです。
file:///c:/Documents and Settings/私/.svk/local/local/project_x

なぜか.../local/local/...になるんです。

用語:
remote repository:subversionのリポジトリ
local repository:svkのリポジトリ
want to get some work done:何かしたい。<-最初何かした後かと思った…。doneは過去じゃないのね。受動態?のdoneなのね。
upstream repository:subversionのリポジトリ
remote branch:subversionのリポジトリにあるブランチ
local branch:svkのリポジトリにローカルで作るブランチ。
※subversionのリポジトリにあるブランチがsync等でローカルにコピーされたものではない。
posted by ほえ at 18:06| Comment(0) | TrackBack(0) | Subversion | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:


この記事へのトラックバック
×

この広告は1年以上新しい記事の投稿がないブログに表示されております。