rsyncで.svnを除外

rsyncでファイルを転送するときに、ほとんどの場合に(あくまでも私の場合!)、.svnは邪魔だということに今更気がついた。

というわけで、.bash_profileに以下の行を追加した。

alias rsync="rsync -avz --exclude=\".svn\""

これで、転送した後にfindとか使って.svnを削除したりしなくてすむ。

ちなみに、私の.bash_profileは以下のような感じ。

# .bash_profile

# Get the aliases and functions
if [ -f ~/.bashrc ]; then
  . ~/.bashrc
fi

# User specific environment and startup programs

PATH=$PATH:$HOME/bin

alias svndel="svn st | grep '^!' | sed -e 's/\![ ]*/svn del /g' | sh"
alias svnadd="svn st | grep '^?' | sed -e 's/\?[ ]*/svn add /g' | sh"
alias rsync="rsync -avz --exclude=\".svn\""
alias vi="vim"

export PATH
export LANG=ja_JP.UTF-8
PS1="[\u@\h \W]\$ "

MySQL用郵便番号データのダウンロード

密かに、Tracのほうでは以前から公開していたのですが、MySQL用の郵便番号データを配布します。

実は、このデータは前から作ってあったのですが、Cronで定期的にゆうびんホームページ郵便番号データダウンロードをチェックして更新されたらSVNリポジトリにコミットするというスクリプトを設置して、本日見事にデータの更新が検出できたので、ここでご紹介させていただくことにしました。

ダウンロード

MySQL用郵便番号データのダウンロード更新日はこちらで確認してください。

注意事項

このパッケージ内には、郵便番号データのMySQL用SQLファイル及びテーブルのスキーマが同梱されています。

データはCronで深夜に毎日チェックしています。
配布用のzipファイル内に含まれているデータは実際にMySQLに流し込んでテスト済みですが、SVNリポジトリにあるデータはそうとは限らないのでお気を付けください。

  • 読み仮名データの促音・拗音を小書きで表記するものを使用しています。
  • テーブル名はtbl_zipcodeです。
  • フィールド名は指定してありませんので任意のフィールド名でテーブルを作成してください。(15列あります。)
  • 半角カタカナは全角に変換してあります。
  • 文字コードはUTF-8です。
  • 各フィールドの詳細は 郵便番号データの説明の「郵便番号データファイルの形式等」をご参照ください。(列の順番はそのままです。)

SQLファイル内には郵便番号データすべてが含まれています。
次回以降のアップデートで流し込む際には、事前にデータの削除を行わないと重複して挿入されてしまいますのでご注意願います。

免責事項

本データを利用したことによる如何なる損害にも補償しかねますので、あらかじめご了承ください。

ライセンス

このデータに関しましては、著作権を主張しません。
ご自由に再配布していただいて結構です。

ですが、ご褒美を頂けるなら、とても感謝します。

Subversionで無かったことにする

このサイト上で公開しているTracにテストでPHPのマニュアルをコミットしたら、ファイル数がとても多くて(9千件以上!!)、タイムラインやリポジトリブラウザの表示の際に異常にCPU負荷が高くなることに気がついた。

とりあえず、リポジトリを削除したのだが、このTrac+SVNはほんとうに素晴らしくて削除済みのアイテムもちゃんと表示してくれたりする。(じゃなかったら使う意味が半減ですが。。。)

どうしようかとおもったら、特定のファイルやディレクトリに対する履歴を完全に削除する方法があった。

svnadmin dump /home/svn/repos | svndumpfilter exclude /jogai > dump.svn
rm -fr /home/svn/repos/*
svnadmin create /home/svn/repos/
svnadmin load /home/svn/repos/ < dump.svn
trac-admin /home/svn/trac resynv

最後の行のtrac-admin….は、この作業結果をtracに反映するおまじないです。

mod_ruidとSubversion+Trac

このサイトで公開しているMail_CheckUserCrossOverなどのSubversionリポジトリをWebDAV+Tracで構築した。

構築方法は、Google先生に聞いていただければたくさんあるので、詳細は割愛しますが、このサーバーではmod_ruidを導入しているので、リポジトリのオーナー及びグループを、apacheではなくあえてmod_ruidで設定したユーザー、グループにしてみた。

結果は、全く問題なし。
Tracもさわれてコミットもできました。

MacOSX上のSubversionで日本語ファイル名が扱えるようになった。

MacOSXにプリインストールされているSubversionでは、ファイル名やディレクトリ名に濁点つきの日本語を使用していると、ファイル名の有無をうまく判別できなかった。

仕方がないので今まではParallels上のWindowsからTortoiseSVNを使ってコミットしていたのだが、最近になってようやくMacPortsで上記の問題を解決できるようになった。

$ sudo port -v install subversion +unicode_path

実は、私の環境では上記のコマンドをいきなり実行しても、「Berkeley DBが古いよ」みたいなエラーが出てうまくインストールできなかったので、以下のコマンドを実行してMacPortsをアップデートしてから実行したらうまくいった。

sudo port upgrade installed

XCodeのバージョンが古いと怒られるので、エラーが出たらADCでXCodeの最新版を入手してインストールしてからやり直しましょう。

svn addがめんどくさいので

subversionを使っているときに、たくさんのファイルをまとめて追加したときや削除したときに、何回もsvn add …とかsvn delするのがめんどくさい。

そこで、「.bash_profile」に以下のような記述を入れた。

alias svndel="svn st | grep '^!' | sed -e 's/\![ ]*/svn del /g' | sh"
alias svnadd="svn st | grep '^?' | sed -e 's/\?[ ]*/svn add /g' | sh"

以上で、svnaddとかsvndelとコマンドを入力するだけで、まとめてファイルの追加や削除が出来る。

めっちゃ便利っす。

Tracのリポジトリブラウザで文字化け対策

Trac+Subversionを使用していると、リポジトリブラウザで文字化けすることがあります。

これは、そのHTMLファイルやPHPプログラムが、UTF-8以外の文字コードで記述されているためにおこる現象で、svn:mime-type属性に文字コードを指定してあげると、文字化けが解消されます。

ただ、ファイルを一つずつ設定していると大変な労力になるので、Linuxでは以下のようなコマンドを実行すれば一発で完了します。

カレントディレクトリ以下のPHPをEUC-JPに設定

改行は無視して1行で実行すること

find . -name "*.php" -exec svn propset "svn:mime-type" "text/x-php;charset=EUC-JP" {} \;

カレントディレクトリ以下のHTMLをEUC-JPに設定

改行は無視して1行で実行すること

find . -name "*.html" -exec svn propset "svn:mime-type" "text/html;charset=EUC-JP" {} \;

拡張子が一致する全てのファイルを対象にしますので、複数の文字コードが混在する場合は、何回かに分けて実施しましょう。

PHPやJavaScriptなどの開発はシータネットワークスをよろしくお願いします。