Subversionコマンド
svnadminコマンド
svnコマンド
リポジトリのパスの指定方法
Subversionリポジトリを作成する
| |
リポジトリの内容をダンプする
| |
リポジトリの内容を復元する
|
ファイル、ディレクトリ、シンボリックリンクを追加する
| |
指定したファイルまたはURLの内容を表示する
| |
作業コピーをリポジトリから取り出す (co)
| |
作業コピーの編集内容をリポジトリに反映させる (ci)
| |
ファイル、ディレクトリをコピーする
| |
ファイル、ディレクトリ、シンボリックリンクを削除する
| |
変更箇所を調べて unified diff 形式で表示する
| |
クリーンなディレクトリツリーを取り出す
| |
ヘルプメッセージを表示する
| |
新しいプロジェクトをリポジトリに登録する
| |
ローカル、リモートパスにあるアイテムの情報を表示する
| |
リポジトリ中のディレクトリエントリを一覧表示する (ls)
| |
作業コピーパスまたはリポジトリURLをロックする
| |
ファイルやディレクトリの履歴に関する情報を表示する
| |
ディレクトリを作成する
| |
ファイル、ディレクトリを移動する
| |
作業コピーへの編集を取り消す
| |
作業コピーに加えられた変更点を表示する (st)
| |
作業コピーパスまたはリポジトリURLをアンロックする
| |
リポジトリの変更点を作業コピーに取り入れる
|
Subversionリポジトリを作成します。
$ svnadmin create <リポジトリへのパス>
(注)
Subversionではブランチやタグの処理をコピー操作で行えるよう次のようなディレクトリが作成されるようになっています。
trunk/ 開発を行うディレクトリ
branches/ ブランチを入れるディレクトリ
tags/ タグを入れるディレクトリ
リポジトリの内容をダンプします。
ダンプされた内容は標準出力に書き出されます。リダイレクトを行いファイル書き出すようにします。
$ svnadmin dump <リポジトリへのパス> > svn_dump
リポジトリの内容は svn_dump に書き出されます。
リポジトリの内容を復元します。
svnadmin load コマンドで指定するリポジトリはあらかじめ作成しておく必要があります。
$ svnadmin load <リポジトリへのパス> < svn_dump
ダンプファイル svn_dump からリポジトリを復元します。
ファイル、ディレクトリ、シンボリックリンクを追加します。
$ svn add <追加アイテム>
アイテムのリポジトリへの追加は次のコミットで行われるます。
(注)
ディレクトリを追加するには、mkdirしたディレクトリをsvn addコマンドで追加する方法と、svn mkdirコマンドを利用する方法があります。
指定したファイルまたはURLの内容を表示します。
$ svn cat
<使用例>
リビジョン 2のtext.txtファイルをtext.txt.v2に書き出します。
$ svn cat --revision 2 text.txt > text.txt.v2
作業コピーをリポジトリから取り出します。
$ svn checkout http://localhost/repos/svn/trunk
$ svn co http://localhost/repos/svn/trunk
リポジトリのパス名の最後のディレクトリが作業コピーとして作成されます。
指定したSubversionリポジトリの最新のリビジョンがコピーされます。
リポジトリ URL の後に作業コピーディレクトリの名前を指定することもできます。
$ svn checkout http://localhost/repos/svn/trunk subv
(注)
作業コピーディレクトリに作成される .svn ディレクトリにはSubversion の管理情報が含まれています。削除したり変更することはできません。
どのリポジトリからチェックアウトしたかは svn info コマンドで調べることができます。
$ svn info
作業コピーの変更箇所をリポジトリに反映させます。
$ svn commit -m "ロブメッセージ"
$ svn ci -m "ロブメッセージ"
--message (あるいは -m) オプションでログメッセージを指定します。
--message オプションを指定しなかった場合にはログメッセージ入力用エディタが起動します。
(注)
ファイルやディレクトリを削除、追加、コピー、移動する場合は、svn add/delete/copy/move/mkdir などのコマンドを用いて「マーク」を設定します。その後、commitコマンドを実行して変更をリポジトリに反映させる必要があります。
ファイル、ディレクトリをコピーします。
新しいアイテムをコピー元アイテムのコピーとして作成します。
$ svn copy <コピー元アイテム> <新しいアイテム>
(注)
新しいアイテムがコミットでリポジトリに追加されるとコピーの履歴が記録されます。
ファイル、ディレクトリ、シンボリックリンクを削除します。
$ svn delete <削除するアイテム>
削除対象アイテムがファイルまたはシンボリックリンクの場合は作業コピーから直ちに削除されます。
削除対象アイテムがディレクトリの場合は作業コピーから直ちには削除されないで、変更のコミット時に作業コピーとリポジトリから削除されます。
ディレクトリを削除するためには、あらかじめそのディレクトリに含まれるファイルを削除し、ディレクトリを空にしておく必要があります。
変更箇所を調べて unified diff 形式で表示します。
.svn にある「修正元リビジョンのコピー」に対して作業コピー中のファイルとの比較を行います。
$ svn diff
リポジトリまたは作業コピーからローカルマシン上にクリーンなツリーディレクトリを取り出します。
●リポジトリからのエクスポート
URLで指定したリポジトリからクリーンなディレクトリツリーをPATHにエクスポートします。
リポジトリからリビジョン番号を指定してエクスポートすることもできます。
svn export URL [-r <リビジョン番号>] [PATH]
PATHを省略すると、URLの最後の部分がローカルディレクトリ名に使用されます。
●作業コピーからのエキスポート
PATH1で指定された作業コピーからクリーンなディレクトリツリーをローカルマシンのPATH2にエクスポートします。
すべてのローカルの変更がエクスポートされますが、バージョン管理下にあるファイルはエクスポートされません。
svn export PATH1 PATH2
ヘルプメッセージを表示します。
$ svn help
新しいプロジェクトをリポジトリに登録します。
$ svnadmin create /var/www/svn/newrepos
$ svn import -m 'import project' mytree file:///var/www/svn/newrepos/some/project
ディレクトリ mytree の内容がリポジトリ中の some/project ディレクトリの下にコピーされます。
(注)
「.」でカレントディレクトリを指定してインポートすることもできるが、ログメッセージ用に作られる一時ファイルもインポートされてしまいます。
ローカル、あるいはリモートパスにあるアイテムについての情報を表示します。
$ svn info
リポジトリ中のディレクトリエントリを一覧表示します。
$ svn list <リポジトリパス>
$ svn ls <リポジトリパス>
作業コピーパスまたはリポジトリURLをロックします。
$ svn lock
ファイルやディレクトリの履歴に関する情報を表示します。
$ svn log
<使用例>
$ svn log
$ svn log -r 1
$ svn log file.c
$ svn log http://localhost/svn/trunk/code/file.c
ディレクトリを作成します。
$ svn mkdir <ディレクトリ>
ディレクトリのリポジトリへの追加は次のコミットで行われるます。
ファイル、ディレクトリを移動します。
アイテム名の変更にもsvn move コマンドは使用されます。
$ svn copy <移動元アイテム> <移動先アイテム>
(注)
リポジトリにcommitコマンドの実行後に反映されます。
変更を取り消して、最後にアップデートまたはコミットした内容に作業コピーを戻すことができます。
$ svn revert [変更を取り消すファイル]
Subversion は指定されたファイルを .svn 領域にある「修正元リビジョン」のコピーで上書きすることよって修正以前の状態に戻します。
作業コピーに加えられた変更点を表示します。
引数なしで実行するとツリー全体の変更が表示されます。
$ svn status
<svn status 表示の意味>
1文字目 追加、削除、変更などを示します。
' ' no modifications
'A' Added
'C' Conflicted
'D' Deleted
'G' Merged
'I' Ignored
'M' Modified
'R' Replaced
'X' item is unversioned, but is used by an externals definition
'?' item is not under version control
'!' item is missing (removed by non-svn command) or incomplete
'~' versioned item obstructed by some item of a different kind
2文字目 ファイルやディレクトリの属性を示します。
' ' no modifications
'C' Conflicted
'M' Modified
3文字目 作業コピーのロックを示します。
' ' not locked
'L' locked
4文字目 履歴付きの追加予告
' ' no history scheduled with commit
'+' history scheduled with commit
5文字目 作業コピーからブランチへのスイッチ (svn switch コマンド)
' ' normal
'S' switched
作業コピーパスまたはリポジトリURLをアンロックします。
$ svn unlock
他の作業コピーで行われたリポジトリの変更を自分の作業コピーに反映させます。
$ svn update
<ファイルに対する変更表示文字>
A Added
D Deleted
U Updated
C Conflict
G Merged
リポジトリへのパス指定は接続方法によって書式が変わります。
file:/// 自分のマシン上のリポジトリに接続します。
file:// ネットワーク上のリポジトリに接続します。
http:// Apache経由でリポジトリに接続します。
https:// Apache経由(SSL)でリポジトリに接続します。
svn:// Svnserve経由でリポジトリに接続します。
svn+ssh:// SSH経由でリポジトリに接続します。
<使用例>
$ svn checkout file:///<リポジトリへのパス>
$ svn checkout file://localhost/<リポジトリへのパス>
参照ページ
CollabNet
http://www.open.collab.net/jp
CVS to SVN Crossover Guide
http://svn.apache.org/repos/asf/subversion/trunk/doc/user/cvs-crossover-guide.html
2011.09.12