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"

関連ページ