codereposにdcommitしようと思ったらエラーがでた

git svn init -s http://svn.coderepos.org/share/lang/elisp/php-completion/ ~/c/php-completion

して作ったプロジェクトで、何回かブランチ作ってmergeを繰り返した後に

git svn dcommit

したんだけど

RA 層のリクエストが失敗しました: ログメッセージを /share/!svn/wbl/82c7aa28-f091-4294-b473-b662e3ddeefd/29213 に適用しています: 400 Bad Request (http://svn.coderepos.org) at /opt/local/libexec/git-core/git-svn line 3347

のようなエラーがでてきて、うまくコミットできない。gitはmacportsからインストールした、ver 1.6.0.2。今、manを読んでる所。

2009/01/29追記

解決した。
branchからmergeするさいに fast-forward commit されていると、コミットが発生しないのが原因みたいでした。
mergeするときに --no-ff オプションをつけて fast-forward commit しないようにすると svn dcommit できました。

git merge minor-mode --no-ff  

詳しくは、http://coderepos.org/share/wiki/FAQ/Git

development versionのphp-completion.elをコミットしました。

http://coderepos.org/share/browser/lang/elisp/php-completion/trunk/php-completion.el
ver 0.01です。一応動くと思いますが、開発途中のバージョンなので、人柱になっても問題ない人向けです。

できる事は、anything.elを使った関数名、定数、iniディレクティブ等の補完です。
アクション(候補選択してTAB)でphp.netのあいまい検索に投げる事も可能です。デフォルトの動作だと、ブラウサで開きます。カスタマイズするばあいは phpcmp-browse-function に関数を設定してください。引数にURLが渡されてcallされます。

クエリを投げる先は phpcmp-manual-url-format で変える事が可能です。PHPのサイトは、rsyncミラーリングできるみたいなので、http://jp.php.net/mirroring.php を参考にしてローカルで動かすと、速くてよいと思います。というか、負荷かけないので推奨だと思います。

インストール

  • php-completion.elをロードパスの通った場所に置く。
  • anything.elに依存しているので、入っていなかったら、インストールする。
  • auto-complete.elと連携させたい人は、auto-complete.elもインストールする。

ダウンロード -> バイトコンパイルは、id:rubikitchさん作の install-elisp.el を使うと楽です。
使い方は、id:tomoyaさんの記事が詳しいです。Emacs ビギナーに贈る、これからバリバリ使い隊!!人のための設定講座 その1。 - 日々、とんは語る。

(install-elisp "http://svn.coderepos.org/share/lang/elisp/php-completion/trunk/php-completion.el")
(install-elisp-from-emacswiki "anything.el")
(install-elisp-from-emacswiki "auto-complete.el")

設定

マイナーモードとして動きます。php-mode-hook等で設定するのがよいと思います。
キーバインドは設定しないので、自分で割り当ててください。以下の例だと、C-o に補完のコマンドを割り当てています。

設定例:

(add-hook 'php-mode-hook
          (lambda ()
            (require 'php-completion)
            (php-completion-mode t)
            (define-key php-mode-map (kbd "C-o") 'phpcmp-complete)))

auto-complete.elとの連携は、ac-source-php-completion を ac-sources に追加します。
部分マッチバージョンの ac-source-php-completion-patial もあります。候補の並び順は、anything-match-pluginの用に、先頭一致 -> 部分一致 となっているので、こっちを使う事をお勧めします。

設定例:

(add-hook  'php-mode-hook
           (lambda ()
             (when (require 'auto-complete nil t)
               (make-variable-buffer-local 'ac-sources)

               (add-to-list 'ac-sources 'ac-source-php-completion)
               ;; 部分マッチは ac-source-php-completion-patial を使う(お勧め!!)
               ;; (add-to-list 'ac-sources 'ac-source-php-completion-patial)

               (auto-complete-mode t))))