Guard不再使用Yosemite OSX 10.10检测文件更改

时间:2014-10-28 18:54:36

标签: ruby-on-rails guard

我设置了Yosemite的干净安装,无论何时更改文件都无法检测到。

我的环境:

guard (2.6.1)
guard-minitest (2.2.0)
rubygems-bundler (1.4.4)
Ruby 1.9.3 and 2.0.0 both have been testing

以下是调试的输出:

tom@Toms-MBP:~/Sites/tick (master)$ LISTEN_GEM_DEBUGGING=2 bundle exec guard -d
I, [2014-10-27T15:34:53.417196 #1059]  INFO -- : Celluloid loglevel set to: 0
15:34:53 - DEBUG - Command execution: emacsclient --eval '1' 2> /dev/null || echo 'N/A'
15:34:53 - INFO - Guard is using TerminalTitle to send notifications.
15:34:53 - DEBUG - Command execution: hash stty
15:34:53 - DEBUG - Guard starts all plugins
15:34:53 - DEBUG - Hook :start_begin executed for Guard::Minitest
15:34:53 - INFO - Guard::Minitest 2.3.2 is running, with Minitest::Unit 4.7.5!
15:34:53 - DEBUG - Hook :start_end executed for Guard::Minitest
15:34:53 - INFO - Guard is now watching at '/Users/tom/Dropbox/Sites/tick'
15:34:53 - DEBUG - Command execution: sysctl -n hw.ncpu
D, [2014-10-27T15:34:53.517668 #1059] DEBUG -- : Adapter: considering TCP ...
D, [2014-10-27T15:34:53.517749 #1059] DEBUG -- : Adapter: considering polling ...
D, [2014-10-27T15:34:53.517776 #1059] DEBUG -- : Adapter: considering optimized backend...
I, [2014-10-27T15:34:53.587089 #1059]  INFO -- : Record.build(): 0.06837701797485352 seconds
15:34:53 - DEBUG - Command execution: stty -g 2>/dev/null
15:34:53 - DEBUG - Start interactor
[1] guard(main)>

我不确定如何测试底层的监听gem,但似乎必须要相关。我已经确认警卫可以正常使用轮询(bundle exec guard start --force-polling)。

3 个答案:

答案 0 :(得分:1)

我可以通过将文件移出Dropbox来解决我的问题。一旦我看到这个工作,我知道Dropbox以某种方式导致文件系统的问题。我通过删除文件夹并通过Dropbox重新添加它来解决它,现在一切都像以前一样工作。

答案 1 :(得分:0)

我遇到了同样的问题,只是感谢我修复了LiveReload应用程序发出的警告。 因为问题并没有限制在Dropbox上的Dropbox和/或ruby,我想分享我的所作所为:

  • 重命名有问题的文件夹(在我的情况下包含Guardfile)
  • 使用旧文件夹名称
  • 创建新文件夹
  • 将文件从旧文件夹移至新文件夹

LiveReload提到的其他解决方案是:

  
      
  • 重新启动计算机
  •   
  • 通过“磁盘工具”检查磁盘并修复权限
  •   
  • 将文件夹添加到Spotlight隐私列表(要编制的文件夹列表中),然后从中删除,有效地强制执行   重新索引
  •   
  • 重命名文件夹,然后可能将其重命名为
  •   
  • 重新创建文件夹并将旧内容移回其中
  •   

了解详情:http://feedback.livereload.com/knowledgebase/articles/86239

这不仅修复了我的Guard问题,还允许Compass watch再次运行。

答案 2 :(得分:0)

您是否添加了 rb-fsevent gem?

group :development, :test do
  gem 'rb-fsevent' if `uname` =~ /Darwin/
end

如果您正在使用OS X,它将使用OS X FSEvents API。