Subversion vol.1
- svnとは?
Subversion(svn)とは?
- パージョン管理システムの一つ
- ソースコードやその他のデータを管理するために用いられるシステム
なぜバージョン管理するのか?
- 複数の開発者が同一のコードに対する変更を平行して進めることができる
- 変更の啓示的な記録が保存される
- チーム作業においてプロジェクト全体を対象として戻ることが可能に。
→作業効率の向上と安全性が計られる
バージョン管理システムの根幹
- diff
- ファイル同士の違いを調べることができる。
- patch
- ファイル同士の差分のかかれたテキストファイル
$ diff test1.txt test2.txt 2c2 < 明日はスープカレーを食べます。 --- > 明日はいちごアイスを食べます。 $ diff -u test1.txt test2.txt --- test1.txt 2009-06-04 10:16:19.000000000 +0900 +++ test2.txt 2009-06-04 10:17:23.000000000 +0900 @@ -1,2 +1,2 @@ 今日はカレーを食べました。 -明日はスープカレーを食べます。//この行が(-) +明日はいちごアイスを食べます。//こうなる。(+) $ diff -u test1.txt test2.txt > test.patch $ patch < test.patch patching file test1.txt $ cat test1.txt 今日はカレーを食べました。 明日はいちごアイスを食べます。
アップデート(update)
svn up
- 今の状態にする
情報をみる(status)
svn st
- 状態を確認する
バージョン管理に追加(add)
svn add (ファイル名)
リポジトリにコミット(commit)
svn ci -m "ログに残すコメント" //-m ログを書く
- addで追加したものが対象
- コミットする前に必ずstする。
- bugがないことを確認してコミットする。
- コメントには何を追加したのかを書く。
- 「〜〜のため〜〜機能を追加しました。」など
ログを見る
svn log
コンフリクト解消
svn resolved (ファイル名)
差分を調べる
svn diff
- 衝突した部分を修正してコンフリクト解消する。
ファイルを削除する
svn rm (ファイル名)
- ローカルで削除するとめんどくさいことになる
- 削除した後はコミットが必要。
ヘルプ
svn help // サブコマンドについて詳細を知りたいとき svn help (サブコマンド)
ファイルのステータスについて
$ svn st M enomoto.txt
? | 追加されていない |
---|---|
A | 新しく追加 |
M | 変更をした(commit前) |
U | ファイルに変更があった(update時に表示) |
C | コンフリクト |
! | ローカルのファイルがない |
用語集
- repository
- 容器、倉庫、バージョン管理の対象を保持して管理する入れ物
- revision number
- リボジトリの特定の状態を指定するID
- conflict
- 衝突。他人も同じ場所を編集してcommitできない状態。(平常ではない、解決する必要がある)