リポジトリの作成
mkdir /home/hoge/svn-repos svnadmin create /home/hoge/svn-repos
リポジトリへのインポート
server という名前のサーバに既存の sesame プロジェクトをインポート
cd sesame svn import -m "initial import" svn://server/sesame/trunk
svn mkdir -m "create tags directory" svn://server/sesame/tags svn mkdir -m "create branches directory" svn://server/sesame/branches
チェックアウト
sesame の trunk をチェックアウトして作業コピーをローカルに取得
svn co svn://server/sesame/trunk sesame
リビジョン(リビジョン6の例)を指定してチェックアウト
svn co -r 6 svn://server/sesame/trunk old-sesame
作業コピーの情報確認
svn info sesame
コミット
cd sesame svn commit -m "Fixed XX bug"
作業コピーの更新
ローカルの作業コピーを最新のリポジトリの内容で更新
cd sesame svn update
update 結果の記号の意味
処理内容 | 意味 |
---|---|
A | 追加された |
D | 削除された |
U | 更新された |
C | 競合している |
G | マージされた |
Cについては競合の解消が必要
差分確認
最後に取得したリポジトリのバージョンと現在の作業コピーのバージョンとの差分
svn diff Customer.java
リポジトリにコミットされた最新版と、現在の作業コピーとの差分
svn diff -r HEAD Customer.java
バージョン間(リビジョン10と12)での差分確認
svn diff -r10:12 Customer.java
競合の解消
作業コピーの内容をリポジトリの内容で更新
svn revert Customer.java svn update Customer.java
リポジトリの内容を作業コピーの内容で更新
cp Customer.java.mine Customer.java svn resolved Customer.java
競合発生時にはローカルのファイルが.mineや.r1などの拡張子で保存される。このファイルで更新して競合を解消
または Customer.java を編集して
svn resolved Customer.java
ログの確認
コミットログの確認は
svn log Customer.java
リビジョン指定は
svn log -r 10:12 Customer.java
変更の取り消し
昔のリビジョンに戻すには
svn merge -r 27:26 Customer.java svn commit -m "Revert deleteAll change from r27"
リビジョン27で加えられた変更分をリビジョン26の状態に戻している
一括での復帰は以下のように行える
svn merge -r 27:26 .
ファイルの追加と削除
svn add Customer.java svn delete Customer.java
ディレクトリについても同様
ファイルのコピーと移動
ファイルのコピーや移動はsvnコマンドで行うことで、変更を追従できる。
svn copy Customer.java SpecialCustomer.java svn commit -m "Create SpecialCustomer"
svn move Customer.java SpecialCustomer.java svn commit -m "Rename Customer to SpecialCustomer"
ディレクトリについても同様の操作が可能
ステータスの確認
svn status
1列目の記号の意味
処理内容 | 意味 |
---|---|
A | 追加されている |
D | 削除されている |
C | 競合している |
I | 無視されている |
M | 変更されている |
R | 置き換えられている |
X | バージョン管理対象外だが、外部定義で使用されている |
? | バージョン管理外 |
! | 消失している(svnコマンドを使用せずに削除された) |
~ | バージョン管理下にあったファイルがことなるアイテムにより妨害された |