[OSX] Versionsがいつのまにか日本語ファイル名に対応

http://versionsapp.com/ ね。
こんな感じのきれいなOSX用Subversionクライアント(有料)。アイコンもかわいい。

去年の9月頃にこのソフトを購入したんですが、UTF-8-MACに対応しきれておらずファイルツリー画面の日本語ファイルが二重に表示されてしまい、ディレクトリ単位のコミットが失敗してしまう状況でした。
メールで治してよと頼んだら、あとで治すからまってて!と返事が来て、その後すっかり忘れてたのですが、どうやら今年の1月のバージョンアップで修正されたようです。 リリースノートには書かれていませんので、去年末で修正されたのかもしれません。
差分表示でもUTF-8やMS932をちゃんと表示してくれます。バイナリーファイルちゃうんか?と警告はされますが。
コマンドラインはちょっと、って思ってた人や、わざわざeclipse使ってた人などは是非試してみてはいかがでしょう?
OSXにrsyncでバックアップ
レンタルサーバーで運用しているWEBサイトのコンテンツを、OSXの社内サーバーにバックアップしようという試み。(レンタルサーバーはCORESERVER)
問題点
レンタルサーバーで使えるrsyncではOSXのエンコーディングに対応できないのです。
完成形
–iconvでUTF-8-MACが指定できるrsyncの作成。
インストール場所は$HOME/tool/bin。
下準備
OSX側のファイルシステムは「大文字小文字区別」するようにしておくこと!
うっかり区別しないにしているなら、バックアップ用のパーティションを別途作成しておきましょう。
macportsでrsyncを入れておくこと。 最初から入ってるrsyncだとなぜかうまくいかない。
バックアップ用のユーザーを作っておき、ssh用のキーペアを作っておく。作った公開鍵はレンタルサーバーの$HOME/.sshに置く。
ソースコードのダウンロード
rsyncとlibiconvが必要です。ここからの作業はサーバーにSSHして行います。コマンドラインが使えない人は諦めましょう。
rsyncはオフィシャルサイトから最新のもの(ここでは3.0.9)をwgetしときます。
libiconvはappleのサイトからlibiconv-13.2.tar.gzあたりをwgetします。(新しいとコンパイルが大変…)
ダウンロードしたソースコードを$HOME/tool/srcに置いて解凍します。
libiconvのコンパイル
libiconv-13.2/libiconvにcdして、./configure –prefix $HOME/tool しておきます。
その後にいくつかのファイルを編集します。(こちらのサイトから抜粋)
lib/utf8mac.hの
#include <libkern/OSByteOrder.h>
を
//#include <libkern/OSByteOrder.h> #include <byteswap.h> #define OSSwapInt16(x) bswap_16(x)
と修正します。
aclocal.m4の
AC_DEFUN([AM_AUTOMAKE_VERSION],[am__api_version="1.7"])
は
AC_DEFUN([AM_AUTOMAKE_VERSION],[am__api_version="1.9"])
同ファイルもう1カ所
[AM_AUTOMAKE_VERSION([1.7.5])])
を
[AM_AUTOMAKE_VERSION([1.9.6])])
に変えます。(バージョンが違ってたら環境に合わせてください。 automakeのバージョンは automake –version で調べることができます。)
さらに、libiconv直下にam–refreshというファイルを作ります。touchしてください。
ここまでできたらやっとmake install。
おわったら $HOME/tool/bin/iconv -l | grep MAC で、「UTF-8-MAC」が出ることを確認。
rsyncのコンパイル
export LDFLAGS=-L$HOME/tool/lib
しておいて、あとは ./configure --prefix=$HOME/toolしてmake installすればおしまい。
実行で気をつけること
--iconv=UTF-8,UTF-8-MAC を付けるのはもちろんのこと、--rsync-path=/opt/local/bin/rsyncを忘れずに。(こちらのサイトで言及)
最終的には以下の様なコマンドになる。(1行で。パスは適宜環境に合わせて書き換え)
$HOME/tool/bin/rsync --rsync-path=/opt/local/bin/rsync
--iconv=UTF-8,UTF-8-MAC -avz --delete
-e ssh ~/public_html backup@<サーバー名>:/Volumes/Backup/coreserver
エラーと対処
libiconvのmakeで「No rule to make target `am–refresh‘. Stop.」
「touch am–refresh」しとけ。
rsyncの実行時に「rsync error: syntax or usage error (code 1) at main.c(1318) [server=2.6.9]」(的な)
–rsync-path忘れてる。
WordPressの自動整形機能を無効にするビジュアルエディタ
これまでずっと悩まされていたWordPressの自動整形機能。
HTMLモードとビジュアルモードの切り替えだけでもコードが整形されてしまうのはかなり辛かった・・・
けど、 PS Sisable Auto Formatting というプラグインを導入してみたらかなりいい感じに投稿が編集できるようになりました。
このプラグインの機能は以下。
- 投稿・投稿・コメント・抜粋・説明、各エリア毎の自動整形停止
- HTMLモード利用時のp、brタグ除去回避
- 作成済み記事に対する一括整形処理
ビジュアルモードは TinyMCE Advanced ほど高機能ではないですが、HTMLの知識があるなら、投稿の編集はこのプラグインで十分(むしろ整形の自由度が増す)な感じです。

