subversion操作
subversionの操作
チェックアウト
$ svn co branchパス 格納ディレクトリ
実行例
$ svn co http://svnserver.local/repos/main/app/trunk trunk_sub
差分を取得する
BASEリビジョンと作業ファイルの比較
$ svn diff ファイル名
指定リビジョンと作業ファイルの比較
$ svn diff -r revision ファイル名
指定リビジョン同士の比較
$ svn diff -r revision:revision ファイル名
実行例
$ svn diff -r 100:300 lib/app/low_unit.c
状態を確認する
作業コピーにあるファイルやディレクトリの状態を表示します。
$ svn status ファイル名
状態は以下の通りです。
指定 | 説明 |
---|---|
' ' | 変更はありません。 |
'A' | 項目は追加準備されています。 |
'M' | 項目は修正されました。 |
'C' | コンフリクト |
'?' | 項目はバージョン管理下にありません。 |
実行例
$ svn status lib/en/*.c
?を表示させない。
$ svn status -q
修正したファイルやリポジトリに新たにコミットされたファイルが知りたい場合。
$ svn status -v
コミット
$ svn commit -m "comment" ファイル名
ファイルの追加
確認してから「add」で追加します。
$ svn status
? lib/json-c-0.3
$ svn add lib/json-c-0.3
A lib/json-c-0.3
svn: 警告: 'lib/json-c-0.3/json-c-0.3' は既にバージョン管理下におかれています
$ svn status
A lib/json-c-0.3
ファイル追加の取り消し
$ svn revert ファイル名
コンフリクトの解消
$ svn resolved ファイル名
ファイル名・ディレクトリ名の変更
コピーを作成した後に、元ファイルを削除する。
$ svn copy json-c-0.3/ json
A json
$ svn status
A + json
$ svn delete json-c-0.3/
タグの打ち方
タグはリリース時点を記録する目的で実施します。
$ svn cp ブランチ名 タグ名 -m 'comment'
マージ(ブランチをtrunkへマージ)
svn mergeコマンドを利用します。
手順1. マージ
$ svn merge -r 起点リビジョン:HEAD http://URL
手順2. diffでtrunkと対象branchの差分確認
$ diff -r -u -x .svn app-trunk/ app-branch/
手順3. コミット
$ svn commit -m "comment"