subversion で漢字入りのファイル名を削除できなくなった時の策

| 1 Comment | No TrackBacks

昨日、とある方法でリポジトリに足したファイルが、subversionのOS的な制限を超えていたため、ワーキングディレクトリが変な状態になるという痛い目に会いました。

どういうことかというと、subversionはメタデータを .svn ディレクトリの下に作りますが、メタデータの対象となるファイル名に最大9文字のサフィックスを追加します。(たとえば、".svn-base")。Unix系のシステムで、ファイル名(いわゆる、ディレクトリ内のファイル名 - base name)が、この長さを超えていて、かつ、255文字以下だと、ファイルをコミットできるけれど、チェックアウトやアップデートできなくなって、とても痛いことになります。はっきりいって、バグとも言える。

で、こうなっちゃったら、リネームするか削除するしかないんですが、これが漢字つかってるファイルだと、漢字のファイル名指定するのに、たとえば、svn ls の結果を、locale合わせた状態で食わせ直しても(たとえば、svn rm `svn ls | fgrep PATTERN` なんてやる) 旨くファイルを見つけられなくなることがあります。特定条件の下で指定できないこと自体は、MacOS X のHFS+ 固有のエンコーディング変換の問題らしいという話もあります(Bug#2464参照)。どうも、アクセント記号の組み合わせとかの問題のようですけどね。

で、この問題から逃げるのに、メーリングリストで聞いたら良い方法おしえてくれました。

話は単純で、http的にrepositoryが見えてるなら、当該ファイルのURLをブラウザで開くと、%エンコードされたURLが手にはいるので、それをコマンドラインで食わせれば、svn が理解できるパス文字列になることを利用するのです。

おかげで、問題解決できました。。久々にメーリングリストでクイックに返答得られて、ハッピーです。

No TrackBacks

TrackBack URL: http://pooh.shigeya.org/mt5/mt-tb.cgi/1312

1 Comment

なるほどぉ~!って言われればですが、面白いね。

Leave a comment

February 2013

Sun Mon Tue Wed Thu Fri Sat
          1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28    

Categories

Pages

OpenID accepted here Learn more about OpenID
Powered by Movable Type 5.14-ja

About this Entry

This page contains a single entry by shigeya published on October 23, 2007 9:24 AM.

香港のご飯(6) 鏞記[ヨンキー]のローストグース丼 was the previous entry in this blog.

最近のツボ: Mêlée - Built To Last is the next entry in this blog.

Find recent content on the main index or look in the archives to find all content.

Recent Comments

  • naka: なるほどぉ~!って言 read more

Monthly Archives