* Subversion [#t08f2be2]
"Subversion" は "SubVersion" に非ず。

#contents

** ハマったところメモ [#l3490c9f]

*** 何かコミットできないよ? [#d834538e]

日本語などマルチバイト文字が含まれるファイルをコミットしようとすると、
次のようなエラーが出てコミットできないことがある。

 Safe data (ファイルorディレクトリ) was followed by non-ASCII byte %d.
 Non-ASCII character detected (see above), and unable to convert to/from UTF-8

SVNサーバのLANG設定は正しい、かつ、今までは普通にコミットできていたのに、
急にコミットできなくなった、という場合は、次のチェックをしてみる。

- SubeclipseやTortoiseSVNなどクライアントの文字コードが変わっていないか。
- エディタの文字コード設定が変わっていないか。
- Eclipseの場合は、プロジェクトをクリーンアップ(リビルド)してみる。
- 環境変数 APR_ICONV_PATH が設定されてなければ追加。&br;
ここがカレントになっていればコミットできるけど、そうでない場合に失敗している?PATHを(C:\Program Files\Subversion\iconv とかに)通してしまってもいいのかも。

これは確定的な原因がわからないので調査中。

*** Subeclipseで衝突したファイルを更新したとき [#je6389a3]
Subeclipseで衝突(更新が競合)したファイルがあると、競合ファイルの該当箇所に相違点が書き込まれ、これとは別に次の3つのファイルが作成される。

- *.mine&br;
ローカルで更新したファイル。
- *.r(Baseリビジョン)&br;
ローカルで更新したファイルの元となったバージョンのファイル。
- *.r(Headリビジョン)&br;
現在リポジトリにある最新バージョンのファイル。これと衝突しているということ。

該当ファイルがJavaなどのソースファイルであれば、Subeclipseが書き込んだコメントのためにコンパイルエラー状態になる。大きな相違がなければ、そのエラー部分を消して、新たにできた3ファイルも削除してやれば、普通にローカルで更新された状態になる。それをコミットすればOK。

''参考''&br;
[[Subversion によるバージョン管理:http://hata.biz/mirror/snap/1095876945.html]]
*** ローカルディレクトリがロックされて更新できない? [#x9474ea9]
updateしようとすると、次のようなエラーが出て更新できないことがあった。

 Attempted to lock an already-locked dir
 svn: Working copy 'c:/workspace/webapp' locked

svnの処理を強制中断したりすると、ときどきこういう状態になるらしい。

この場合、問題のディレクトリをクリーンアップすればなおる。

 cleanup c:/workspace/webapp

これでダメなら、一度該当ディレクトリを物理的に削除して(勿論、ソースファイルなどはバックアップして)、再度そのディレクトリをリポジトリから取得(チェックアウト)する。

*** Subversion のクライアントが古くてコミットできない? [#n583fc15]

主に Linux の Eclipse(Subeclipse) を使ってるときに起こりやすい問題で、
チェックアウトした作業コピーが、Subeclipse が使っている svn より新しいものでコミットされていると、
そのファイルを Subeclipse (というか、その環境)からコミットしようとしたとき、
以下のようなエラーが出てコミットできない。

 svn: This client is too old to work with working copy '(filename)'; 
 please get a newer Subversion client

 svn: このクライアントは、作業コピー '(filename)' を扱うには古すぎます。
 もっと新しい Subversion クライアントをダウンロードしてください。

これは、Linux でデフォルト(yum)でインストールされるバージョンが古いため。
例えば CentOS 5.5 で Subversion をインストールすると、1.4.x が入るが、
これだと、それより新しい svn でコミットされたものが扱えない。

yum を使うとどうしても古いのが入ってしまうので、この場合、ソースからインストールしてしまう。

以下その手順。

+ 古いのをアンインストール。&br;
 $ su
 # yum remove subversion
+ ソースをダウンロードする適当なディレクトリに移動。&br;
 # cd /usr/local/src
+ 新しい svn をダウンロード。&br;
 # wget http://subversion.tigris.org/downloads/subversion-1.6.12.tar.gz
 # wget http://subversion.tigris.org/downloads/subversion-deps-1.6.12.tar.gz
(2010/8/20 現在 最新は 1.6.12)
+ 展開。&br;
 # tar xzvf subversion-1.6.12.tar.gz
 # tar xzvf subversion-deps-1.6.12.tar.gz
+ コンパイル。&br;
 # cd subversion-1.6.12
 # ./configure
 # make
 # make install
+ ちゃんと動くか確認。&br;
 # svn --version
バージョン情報が表示されれば OK。


** Windows クライアント [#lb6832a8]
- [[TortoiseSVN:http://tortoisesvn.tigris.org/]]&br;
Windows シェル(Explorer)に統合されたツール。
- [[RapidSVN:http://rapidsvn.tigris.org/]]&br;
SVN の Windows GUI フロントエンド。
- [[Subeclipse:http://subclipse.tigris.org/]]&br;
Eclipseのプラグイン。→ [[Eclipse Wiki:http://eclipsewiki.net/eclipse/?Subclipse%A5%D7%A5%E9%A5%B0%A5%A4%A5%F3]]

** 参考サイト [#x0f96851]
- [[subversion.tigris.org:http://subversion.tigris.org/]]
- [[Subversionの基礎演習:http://www.hyuki.com/techinfo/svninit.html]]
- [[Subversion | Program Island:http://www.limy.org/program/subversion.html]]
-----
[[MLEXP. Wiki]]

#googleads(1,1)


トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS