Hatena::ブログ(Diary)

130単位

2008-10-14

Subversion Windows上で大量ファイルを扱う際のフリーズ回避法

Windows上でTortoiseSVNを使っていて、インポートやコミットなどで大量のファイルを扱った際に、PCがフリーズすることが何度かありました。どうしたもんかと思って先輩に聞いてみると、「私もなるけど、まぁちょっとずつコミットすればいいんじゃない」とのこと。んー、でもそれではやっぱり非効率なので、何かいい方法がないものか調べてみました。

みけメモ: TortoiseSVNマルチコアCPU上で動かすと止まる???
http://mikememo.cocolog-nifty.com/blog/2008/03/tortoisesvnga.html
low level life - Subversion (※下のほうの記事)*1
http://www.lowlevellife.com/?s=Subversion

2番目の記事の、

でも、コマンドラインsvnと直接やりとりすると大丈夫だった。

ってのがもっとも手短な解決方法のように思えましたので、早速実践。

svnコマンドの確認

コマンドプロンプトを起動し、「svn help」など打ってみてsvnコマンドが使えるか確かめます。

C:\>svn help
'svn' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。

こんなのが出た場合は、以下サイトからWindows用の「CollabNet Subversion」をダウンロード

subversion.tigris.org
http://subversion.tigris.org/

インストール後、実行ファイルを環境変数のPathに設定します*2

C:\>svn help
usage: svn <subcommand> [options] [args]
Subversion command-line client, version 1.5.2.

...

こんな感じで出れば大丈夫。

コマンド実行例

インポートコマンドを実行してみた例です。

C:\test>svn import http://192.168.0.*/svn/test
svn: Could not use external editor to fetch log message; consider setting the $S
VN_EDITOR environment variable or using the --message (-m) or --file (-F) option
s
svn: None of the environment variables SVN_EDITOR, VISUAL or EDITOR are set, and
 no 'editor-cmd' run-time configuration option was found

エラーになりました。ログメッセージを指定しないとだめなようです。

C:\test>svn import http://192.168.0.*/svn/test -m "import test."
Adding         test.txt

Committed revision 1.

引数「-m」で指定してやればOK。

実際に大量のファイル*3インポートしてみたところ、別作業を行いながらでもフリーズすることなく一発で済みました。

補足

↑の実行例ででエラーになったのは、厳密には、「ログメッセージが指定されてないので、メッセージ入力用の外部エディタを開こうとしたけど開けなかった」というものみたいです。

「C:\Documents and Settings\[username]\Application Data\Subversion\config」をエディタで開き、helperのセクション(27行目くらい)を以下のように変更します。

# editor-cmd = %SystemRoot%\system32\notepad.exe

editor-cmd = %SystemRoot%\system32\notepad.exe

これでメッセージなしの場合であっても、メモ帳が開いて処理が続くようになります。

参考
Windows環境にCUISubversion(svn)をインストールするメモ - Knowledge Database IT
http://it.kndb.jp/entry/show/id/1084

関連記事:

Subversion Windows上からサーバへのインポート - 130単位

*1パーマリンクが使えなかったのです

*2:システムのプロパティ→詳細設定→環境変数

*3:約8200ファイル

スパム対策のためのダミーです。もし見えても何も入力しないでください
ゲスト


画像認証