カテゴリー
Computer Development Security

PROVE for PHP 0.4.0-dev リリース

PROVE for PHP 0.4.0をリリースしました。

  • IOをプラグイン化(将来PostgreSQLなどに対応)
  • prove_seek_function_call()を追加
  • ハードリンクによるコピーに対応(高速化)
  • prove_rename_function()の無効化(PHP 5.3のZend Engineの仕様変更により関数名変更はメモリエラーが発生するため)
  • ログフォーマットを更新。バージョン情報を追加。

もともとIO部分はプラグイン化するつもりだったのですが、ファイルに最適化し過ぎていた部分があったため大幅にリファクタリングしました。機能追加よりも今後の機能拡張を容易にするための変更がメインです。内部構造をかなり変更したのでバグが残っているかも知れません。もし見つけたら教えて頂けると助かります。

カテゴリー
Computer Development Security

もうバージョンアップで困らない – PROVE for PHP

昨年のPHPカンファレンスで紹介したPORVE for PHP 開発版の公開を始めました。PROVE for PHPはこんなテストが出来ます。

  • PHPをアップデートしてアプリに影響が無い事を検証する
  • PHPアプリをアップデートしても以前と同じように動作する事を検証する

使い方もとても簡単です。

  • テストケースの作成はブラウザからアプリを利用するだけ
  • ロードバランサを用いて実運用サーバからのテストケースも作成可能
  • テストの実行はプログラムを実行するだけ
  • 違いが在った場所はプログラムの何処か確実&簡単に判明

http://www.provephp.com/

カテゴリー
Computer

error: unable to index file – 初めてのGitエラー

Gitを使っていて初めてエラーらしいエラーに合いました。検索してもコレという物がヒットしなかったので書きます。

error: unable to index file aaa
fatal: updating files failed

などと出るエラーですが

  • 既にファイルとしてコミットしているパスを、ディレクトリにしてコミットしようとする

と出るエラーのようです。簡単に再現します。

(git version 1.7.3.3)

[yohgaki@dev git-test]$ git init .
Initialized empty Git repository in /home/yohgaki/tmp/git-test/.git/
[yohgaki@dev git-test]$ touch aaa
[yohgaki@dev git-test]$ git add aaa
[yohgaki@dev git-test]$ git commit -m 'add' .
[master (root-commit) ff6f5d2] add
 0 files changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 aaa
[yohgaki@dev git-test]$ rm aaa
rm: remove 通常の空ファイル `aaa'? y
[yohgaki@dev git-test]$ mkdir aaa
[yohgaki@dev git-test]$ touch aaa/bbb
[yohgaki@dev git-test]$ git add aaa/
[yohgaki@dev git-test]$ git commit -m 'add dir' .
error: unable to index file aaa
fatal: updating files failed

他のケースでも出るようですが私の場合はこれでした。コミットしたいディレクトリに移動してコミットすればコミットできましたが、私の場合は何か他の問題(?)もあったようでdetachした状態となったのでマージして直しました。

[yohgaki@dev git-test]$ git commit -m 'add dir' .
error: unable to index file aaa
fatal: updating files failed
[yohgaki@dev git-test]$ cd aaa/
[yohgaki@dev aaa]$ git commit -m 'commit dir' .
[master 5b63843] commit dir
 1 files changed, 0 insertions(+), 0 deletions(-)
 rename aaa => aaa/bbb (100%)
[yohgaki@dev aaa]$ cd ..
[yohgaki@dev git-test]$ git branch
* master