Padrino と git の兼ね合い
最近 Padirno を使う様になったのですが、git のリモートリポジトリによるソースの管理を行なった所エラーがでて詰まりました。
下記のコマンドはコントローラーの生成ですが、実行すると、
$ padrino g controller sample create app/controllers/login.rb create app/helpers/login_helper.rb create app/views/login /Users/biwakonbu/.rvm/rubies/ruby-1.9.3-p125/lib/ruby/1.9.1/psych.rb:229:in `initialize': No such file or directory - /Users/biwakonbu/padrino/calender/.components (Errno::ENOENT) from /Users/biwakonbu/.rvm/rubies/ruby-1.9.3-p125/lib/ruby/1.9.1/psych.rb:229:in `open' from /Users/biwakonbu/.rvm/rubies/ruby-1.9.3-p125/lib/ruby/1.9.1/psych.rb:229:in `load_file' from /Users/biwakonbu/.rvm/gems/ruby-1.9.3-p125/gems/padrino-gen-0.10.6/lib/padrino-gen/generators/actions.rb:120:in `retrieve_component_config' from /Users/biwakonbu/.rvm/gems/ruby-1.9.3-p125/gems/padrino-gen-0.10.6/lib/padrino-gen/generators/actions.rb:83:in `fetch_component_choice' from /Users/biwakonbu/.rvm/gems/ruby-1.9.3-p125/gems/padrino-gen-0.10.6/lib/padrino-gen/generators/actions.rb:66:in `include_component_module_for' from /Users/biwakonbu/.rvm/gems/ruby-1.9.3-p125/gems/padrino-gen-0.10.6/lib/padrino-gen/generators/controller.rb:47:in `create_controller' from /Users/biwakonbu/.rvm/gems/ruby-1.9.3-p125/gems/thor-0.14.6/lib/thor/task.rb:22:in `run' from /Users/biwakonbu/.rvm/gems/ruby-1.9.3-p125/gems/thor-0.14.6/lib/thor/invocation.rb:118:in `invoke_task' from /Users/biwakonbu/.rvm/gems/ruby-1.9.3-p125/gems/thor-0.14.6/lib/thor/invocation.rb:124:in `block in invoke_all' from /Users/biwakonbu/.rvm/gems/ruby-1.9.3-p125/gems/thor-0.14.6/lib/thor/invocation.rb:124:in `each' from /Users/biwakonbu/.rvm/gems/ruby-1.9.3-p125/gems/thor-0.14.6/lib/thor/invocation.rb:124:in `map' from /Users/biwakonbu/.rvm/gems/ruby-1.9.3-p125/gems/thor-0.14.6/lib/thor/invocation.rb:124:in `invoke_all' from /Users/biwakonbu/.rvm/gems/ruby-1.9.3-p125/gems/thor-0.14.6/lib/thor/group.rb:226:in `dispatch' from /Users/biwakonbu/.rvm/gems/ruby-1.9.3-p125/gems/thor-0.14.6/lib/thor/base.rb:389:in `start' from /Users/biwakonbu/.rvm/gems/ruby-1.9.3-p125/gems/padrino-gen-0.10.6/lib/padrino-gen/generators/cli.rb:51:in `setup' from /Users/biwakonbu/.rvm/gems/ruby-1.9.3-p125/gems/thor-0.14.6/lib/thor/task.rb:22:in `run' from /Users/biwakonbu/.rvm/gems/ruby-1.9.3-p125/gems/thor-0.14.6/lib/thor/invocation.rb:118:in `invoke_task' from /Users/biwakonbu/.rvm/gems/ruby-1.9.3-p125/gems/thor-0.14.6/lib/thor/invocation.rb:124:in `block in invoke_all' from /Users/biwakonbu/.rvm/gems/ruby-1.9.3-p125/gems/thor-0.14.6/lib/thor/invocation.rb:124:in `each' from /Users/biwakonbu/.rvm/gems/ruby-1.9.3-p125/gems/thor-0.14.6/lib/thor/invocation.rb:124:in `map' from /Users/biwakonbu/.rvm/gems/ruby-1.9.3-p125/gems/thor-0.14.6/lib/thor/invocation.rb:124:in `invoke_all' from /Users/biwakonbu/.rvm/gems/ruby-1.9.3-p125/gems/thor-0.14.6/lib/thor/group.rb:226:in `dispatch' from /Users/biwakonbu/.rvm/gems/ruby-1.9.3-p125/gems/thor-0.14.6/lib/thor/base.rb:389:in `start' from /Users/biwakonbu/.rvm/gems/ruby-1.9.3-p125/gems/padrino-gen-0.10.6/bin/padrino-gen:16:in `<main>'
こんな感じでエラーを吐かれました。最初はアプリ作成時の名前と異なる為動かないのかと思いましたが、修正しても同様のエラーを吐いて動きませんでした。config/apps.rb 等も合わせてみましたが効果無しで、どうしようもないと思っていたんですが、そもそも自分の環境から push したコードである事と、それまでは普通に生成出来ていた事から git への push の仕方を疑いました。
リポジトリを作成した時に、作成されているリモートリポジトリを clone し、その中にアプリをコピーすると云う暴挙を行なっていた事を思い出して元々のアプリと merge した所無事に生成出来る様になりました。
結局何がどう悪さしていたのかの検討は付けられませんでしたが、取りあえず git の扱いが悪かった事が判明 && 正常動作する所まで修正出来たので良しとします。
やっぱり git 力は大事ですね。もっと勉強します。