2010/10/28

svnのコマンドを簡単にまとめてみる

普段はmercurialなので、
コマンドがよく分からないのでまとめてみた。
まあ、1人で使っている分にはあまり差がないよなあ
分散とかはないのでとにかくサーバに繋ぐというのが別といえば別なくらい

条件:
リポジトリの場所 /home/hoge/svn/以下
リポジトリ名 test(/home/hoge/svn/test)
テスト用ローカルディレクトリ   /home/hoge/work/test

��:SVNのリポジトリを置く場所を作る(/home/hoge/で作業)
mkdir svn

��:初期化(testというリポジトリにする)
svnadmin create /home/hoge/svn/test

��:テスト用ローカルディレクトリを置く場所を作る(/home/hoge/で作業)
mkdir work

��:テスト用ローカルディレクトリにテスト用のファイルを作成しておく(testfile)
cd work
mkdir test
touch testfile

��:リポジトリ(初期化したばかり)にテストファイルをインポートしてみる
svn import file:///home/hoge/svn/test -m "test."

※"test"はリポジトリに入れるメッセージ

��:リポジトリから取り出してみる
ローカルのテストファイルはディレクトリごと消す(ディレクトリは作成される)
rm -rf /home/hoge/work/test
cd /home/hoge/work

※リポジトリを取り出す場所でコマンド

svn checkout file:///home/hoge/svn/test test

※testというリポジトリをカレントにtestというディレクトリで保存
※testディレクトリは無いので作成する

��:リポジトリ状態確認
/home/hoge/work/test というディレクトりが作成され中にtestfileがあるはず

以下、/home/hoge/work/test内で作業

・差分を確認してみる
svn diff

なければ表示されない。
vi testfile で修正してから再度 svn diffを行うと差分が表示される


・コミット
ローカルディレクトリの作業はコミットしないとSVNに反映されない。

メッセージtest2でコミットする。
svn commit -m "test2"


・新しいファイルをリポジトリに追加してみる(もしくは削除してみる)
ファイルの増減はSVNにコマンドとして教えてやる必要がある。

状況を確認する
svn status

状態を確認すると
? test2file
このようになる場合はtest2fileが新規にあるけど、
SVNには登録がないので指示をしろということ

追加コマンドを打つ
svn add test2file

状況確認
svn status

何も表示されていないのでSVNへは教えられた。

最後にコミットすればリポジトリへも反映される

メッセージtest3でコミットする。
svn commit -m "test3"


このほかのコマンド
削除 delete
ファイル名変更 move
ディレクトリ作成  mkdir