Boost.勉強会 #11 東京 に参加しました
久しぶりのboost勉強会でした。 早速ですが、レポートというかメモというかをドーゾです。
… 続きを見る久しぶりのboost勉強会でした。 早速ですが、レポートというかメモというかをドーゾです。
… 続きを見るFuelPHP 1.6 が公開されたのを記念?してまた FuelPHP 1.6 翻訳ウィーク : ATND が行なわれるとのことなので参加してみました。
とりあえず、FuelPHP ドキュメント翻訳へのお誘いとかFuelPHP の日本語ドキュメントを 5分で修正するを参考に自分はgithubのクライアントを基本に翻訳してみることにしました。
さあ、とりあえず翻訳できたし、とりあえずコミットしてみるかってんでコミットしてみたらここで事件発生! なんか全行削除されて全行追加された感じになっていました。
※そのままgithubにまでコミットしてしまい大変になったのはまた別の話。
で、ピンときて元を確認してみると案の定、改行コードがCrLfではなくLfだった。
設定を確認すると .gitattributes で指定できるっぽいけど、、、余計なファイルを入れたくないなーと思って探してみたらどうも git コマンドで設定ができるっぽい。
見つけたページ Dealing with line endings - GitHub Help を参考に Git Shell 起動して
git config --global core.autocrlf false
としてやると改行コードが勝手に変わるのが直った。
デフォルトが改行コードを変更するようになってるなんてヒドイorz
初めてのPR github.com/NEKOGET/FuelPH…atnd.org/events/39849#fueldocsja
— さめたすたす?(^o^)/さん (@sharkpp) 2013年5月27日で、いろいろ翻訳して Pull Request をしてみてさあマージされたと思って、、、あれ?更新を取り込むにはどうしたら?と思ったので試行錯誤をしてフォーク元から変更を取り込みました。
試行錯誤した後でGitHubへpull requestする際のベストプラクティス - hnwの日記などを見つけてorz状態になったけどとりあえず後で考えるようにした。
なので以下に書かれているのは良くない方法ではあると思うので参考にしてはいけないのです。
とりあえず、githubクライアントでcloneするとう upstream って名前はあるけどURLが指定されていないようです。
$ git remote -v
origin https://github.com/sharkpp/FuelPHP_docs_jp.git (fetch)
origin https://github.com/sharkpp/FuelPHP_docs_jp.git (push)
upstream
で、URLを指定します。
$ git remote set-url upstream https://github.com/NEKOGET/FuelPHP_docs_jp
ここからは行儀が良くないやり方。 Pull Request で余計な変更が含まれたりしてしまいます。
フォーク元から変更を取り込みます。 --rebase を付けるのがポイントのようです。
$ git pull --rebase upstream 1.6/develop_japanese
From https://github.com/NEKOGET/FuelPHP_docs_jp
* branch 1.6/develop_japanese -> FETCH_HEAD
First, rewinding head to replay your work on top of it...
そして、変更をプッシュ。
$ git push -f origin 1.6/develop_japanese
Counting objects: 222, done.
Delta compression using up to 2 threads.
Compressing objects: 100% (140/140), done.
Writing objects: 100% (185/185), 27.32 KiB, done.
Total 185 (delta 127), reused 77 (delta 45)
To https://github.com/sharkpp/FuelPHP_docs_jp.git
+ d1c090c...214104c 1.6/develop_japanese -> 1.6/develop_japanese (forced update)
あとは、思うように翻訳して、githubクライアント上で commit & sync 。 そして、github上で Pull Request です。
git fetch とか git merge とかやってみたけどひどいことになりながら↑のやり方にたどり着きました。
まあ、もっとましなやり方を覚えないと、ですが、、、、順番になれていきたいです。
参考:
先日、といっても一ヶ月以上前ですが、PHP :: Bug #64699 :: is_dir() is inaccurate result on Windows with japanese locale. としてPHPのバグ報告を初めてしてみました。
PHPへのバグ報告の手順 - hnwの日記 や PHP :: How to Report a Bug などを参考に報告しました。
で、いつの間にかコメントがついていました。
まあ、結局のところ PHP :: Bug #61315 :: stat() fails with specific DBCS characters として(or他もろもろで)重複したものが登録されていたようですorz
毎回思うに、重複とかはどうやって確認するんだろう?ってところでバグの報告とか躊躇してしまうんだよなー そこまで気にする必要はないのかもしれないけど、、、
コメントでは、パッチ当てるか php-wfio - Unicode filename support for PHP 5.4 on Windows - Google Project Hosting 使ってみてって書かれてたのでphp-wfioを試してみました。
が、、、うまく動かないのでソースとか fopen or such with UTF-8 filepath - PHP under Windows とか見てみるとis_dir()実装してないから動くわけないじゃん、、、
パッチ当てれば動くかもって話もあるんだけど、、、そこまでは現状困ってない(本番環境はLinux)のでまあ、phpがUnicode対応したらそのうち直るだろうから気長に待つとするかな。 一瞬、php-wfioの実装を見て、そうか!phpの拡張でmbstringみたいに標準関数をoverloadすればできるかも?とか思ったのは秘密だ。
これ、問題はFuelPHPの方どうするかなー? is_dir()は意図しない動きするけどfiletype()は意図する動きなんだよなー、、、まあ、filetype()がうまく動いているのも偶然かもしれないけど、、、
まあ、ってなわけで初めてのバグ報告はすでに同じものが登録されていましたってことで、、、、報告済みのバグをよく確認しましょうってことで終了、、、かな?