2011-06-29 9 views
9

私はGitリポジトリから私のパートナーからクローンを作成したPHPアプリケーションでローカルで作業しようとしています。Windows 7でCompassポーリングでエラーが発生しました

彼はMacを使い、今まで私は仮想Ubuntu Linux環境でこのアプリケーションを開発してきました。どちらの環境も、同じファイル構造とファイルでCompassポーリングを使用することができました。 Windows 7で

、私はコンパスがCygwinのからコマンドを実行すると、これは私がアプリのルートディレクトリからコンパスの世論調査を持っているために使用するコマンドです(C:/ WAMP/www /のアプリケーション):

compass watch --trace src/Application/ApplicationBundle/Resources/compass/

ArgumentError on line 716 of /usr/lib/ruby/1.8/pathname.rb: different prefix: "/ /cygdrivecwampwwwlimelightsrclimelightlimelightbundleresourcescompasssrcpartials _object.scss" and "/cygdrive/c/wamp/www/limelight/src/limelight/limelightbundle/ resources/compass/src" /usr/lib/ruby/gems/1.8/gems/fssm-0.2.7/lib/fssm/path.rb:81:in 'split_path' /usr/lib/ruby/gems/1.8/gems/fssm-0.2.7/lib/fssm/path.rb:69:in 'run_callback' /usr/lib/ruby/gems/1.8/gems/fssm-0.2.7/lib/fssm/path.rb:55:in 'callback_action' /usr/lib/ruby/gems/1.8/gems/fssm-0.2.7/lib/fssm/path.rb:35:in 'update' /usr/lib/ruby/gems/1.8/gems/fssm-0.2.7/lib/fssm/state/directory.rb:39:in 'modified' /usr/lib/ruby/gems/1.8/gems/fssm-0.2.7/lib/fssm/state/directory.rb:37:in 'each' /usr/lib/ruby/gems/1.8/gems/fssm-0.2.7/lib/fssm/state/directory.rb:37:in 'modified' /usr/lib/ruby/gems/1.8/gems/fssm-0.2.7/lib/fssm/state/directory.rb:18:in 'refresh' /usr/lib/ruby/gems/1.8/gems/fssm-0.2.7/lib/fssm/backends/polling.rb:17:in 'run' /usr/lib/ruby/gems/1.8/gems/fssm-0.2.7/lib/fssm/backends/polling.rb:17:in 'each' /usr/lib/ruby/gems/1.8/gems/fssm-0.2.7/lib/fssm/backends/polling.rb:17:in 'run' /usr/lib/ruby/gems/1.8/gems/fssm-0.2.7/lib/fssm/backends/polling.rb:15:in 'loop' /usr/lib/ruby/gems/1.8/gems/fssm-0.2.7/lib/fssm/backends/polling.rb:15:in 'run' /usr/lib/ruby/gems/1.8/gems/fssm-0.2.7/lib/fssm/monitor.rb:26:in 'run' /usr/lib/ruby/gems/1.8/gems/fssm-0.2.7/lib/fssm.rb:20:in 'monitor' /usr/lib/ruby/gems/1.8/gems/compass-0.11.1/lib/compass/commands/watch_project.rb:86:in 'perform' /usr/lib/ruby/gems/1.8/gems/compass-0.11.1/lib/compass/commands/base.rb:18:in 'execute' /usr/lib/ruby/gems/1.8/gems/compass-0.11.1/lib/compass/commands/project_base.rb:19:in 'execute' /usr/lib/ruby/gems/1.8/gems/compass-0.11.1/lib/compass/exec/sub_command_ui.rb:43:in 'perform!' /usr/lib/ruby/gems/1.8/gems/compass-0.11.1/lib/compass/exec/sub_command_ui.rb:15:in 'run!' /usr/lib/ruby/gems/1.8/gems/compass-0.11.1/bin/compass:25 /usr/lib/ruby/gems/1.8/gems/compass-0.11.1/bin/compass:39:in 'call' /usr/lib/ruby/gems/1.8/gems/compass-0.11.1/bin/compass:39 /usr/bin/compass:19:in 'load' /usr/bin/compass:19

はすべて私が検索を通じて見つけることができました、それはとは何かを持っているかもしれないということです。私は、その後.scssファイルに変更を加える

は、私は次のエラーを受け取ります事実Windowsはドライブ名を大文字にしていますが、返されるパスにスラッシュがないため、問題が他の場所にある可能性があります。

Windowsでこのエラーが発生する理由を知っている人はいますか?

注:私はwork-aroundを見つけました。これはCygwinではなくWindowsのコマンドプロンプトからRuby(およびコンパス)をインストールすることを含んでいます。それでも、誰かがアイデアを持っているなら、私はまだその問題が何であるか興味があります。

+0

あなたはバックトレースを投稿できますか? – RobertPitt

+0

@RobertPitt done! –

+0

私は10月15日に同じ問題を抱えています。ここに掲載されたソリューションは数年前には動作しません。あなたの編集中の「回避策」は今や死んだリンクになっています。私はRubyバージョン1.9.3を使用しています。 "line 26"で与えられたコードは、私のpathname.rbファイルでは同じではありません。誰かが最新のソリューションをお持ちの場合は、アドバイスをお願い致します。 – Inigo

答えて

27

this commitによると、これはFSSMと呼ばれるコンパス依存性によって引き起こされる問題です。コンパスのファイル変更を監視するために使用されます。回避策については、this commentに記載されています。

FSSMは、ルビーがWindowsのボックス内で実行されていることを検出し、Windowsの方法でパスを扱います。(C:\blabla)。ファイル<fssm_gem_path>/lib/fssm/pathname.rbの26行目をコメントアウトすると、compass watchは期待どおりに動作します。また、行26の末尾に

unless path[0, 1] == File::SEPARATOR 

を追加して機能させることもできます。

0

は、可能な修正は、ここを参照してください:

+0

残念ながらそれはうまくいきませんでしたが、私はまだ同じ正確なメッセージを受け取ります。ありがとう、結構です!私はCygwinではなくWindowsのコマンドプロンプトでruby(コンパス)をインストールすることを含む[回避策](http://robhoward.id.au.au/2011/01/compass-sass-on-windows/)を見つけました。今のところうまくいくはずです。それでも、誰かがアイデアを持っているなら、私はまだその問題が何であるか興味があります。 –

12

私は、人々がpathname.rbファイルを見つけるのを助けるためにもう少し詳しい情報を提供すると思っていました。 cygwinのプロンプトで

gem env 

この(当然)があなたのRuby Gemsのinstalltionに関する情報の負荷が表示されます。 INSTALLATION DIRECTORYを指定する行を探します。私の場合:

/usr/lib/ruby/gems/1.8 

Windowsエクスプローラでこの場所に移動しますが、cygwinのインストールディレクトリに "usr"を置き換えてください。したがって、上記のパスは次のようになります。

C:\cygwin\lib\ruby\gems\1.8 

この場所に移動すると、fssm gemディレクトリに移動するまでドリルダウンします。この中で

[fssm]ディレクトリが入る:

/lib/fssm/ 

...とそこにはpathname.rbファイルを見つける必要があります。

上記のように編集してください。すべて正常です。私はこれが役立つことを願っています

0

わずかに異なるセットアップでこの同じエラーが発生しました。私のプロジェクトフォルダはネットワークドライブ(ルビーとサス/コンパスがローカルにインストールされていた)にあり、.scssファイルを変更するたびにコンパスの時計はOPに似たエラーでクラッシュします。ネットワークを介してネットワークドライブに直接アクセスするのではなく、マイコンピュータを右クリックしてマップネットワークドライブを選択して、リモートドライブにアクセスできるようにすることで、問題を解決しました。

「コンパスウォッチ// SERVERNAME/My_Project」(私はGit Bashを使用しています)を実行する代わりに、「Compass Watch a/My_Project」を実行し、コンパスがクラッシュを停止しました。

他人を助ける希望。

0

Cygwinを使用して、compass devリリース(0.13+など)を再インストールします。コンパス0.13α4(Markab)で私の仕事 これを行うには:

gem uninstall compass 
gem install compass --pre --no-rdoc --no-ri 
関連する問題