その他の役に立つコマンド

この章でいままで述べてきたほど利用されるわけではありませんが、 以下のコマンドがときどき必要になります。

svn cleanup

Subversionが作業コピー(や.svnに ある情報)を修正するときには、できるだけ安全にやろうと します。 作業コピーの内容を変更する前にSubversionはまず変更手順をログファイル に書きます。次に実際に変更を適用するためにログファイルの中の コマンドを実行していきます。最後にSubversionはログファイルを削除します。 プログラムの構成という意味では、これはジャーナル化ファイルシステムと よく似ています。 Subversionの操作が中断されると(プロセスが異常終了 したり、マシンがクラッシュしたり、といった場合)ログファイルは ディスクに残ります。ログファイルを再実行することでSubversionは 以前に開始された操作を完結することができ、作業コピーを正常で 一貫した状態に戻すことができます。

svn cleanupがやるのは、まさにこのことです。 作業コピーを探して、残ったログを実行し、プロセスのロックを 取り除きます。Subversionに作業コピーのどこかが「ロック」 されていると言われたときには、このコマンドを実行してください。 同様にsvn status はロックされているアイテム の隣に L を表示してそのことを示します:

$ svn status
  L    somedir
M      somedir/foo.c 

$ svn cleanup
$ svn status
M      somedir/foo.c

svn import

svn importコマンドはバージョン管理されていない複数のファイル をリポジトリにコピーし、必要に応じて直ちにディレクトリを作るための簡単 な方法です。

$ svnadmin create /usr/local/svn/newrepos
$ svn import mytree file:///usr/local/svn/newrepos/some/project ¥
             -m "Initial import"
Adding         mytree/foo.c
Adding         mytree/bar.c
Adding         mytree/subdir
Adding         mytree/subdir/quux.h

Committed revision 1.

上の例はディレクトリmytree の内容を リポジトリ中のsome/project ディレクトリの下に コピーしています:

$ svn list file:///usr/local/svn/newrepos/some/project
bar.c
foo.c
subdir/

インポートが終わった後で、もとのツリーが作業コピーに変換さ れたわけではないのに注意してください。作業を始めるには、さらにこのツリー のための最初の作業コピーをsvn checkoutする 必要があります。