watchman 是否通知已删除的文件?
is watchman notifies for deleted files?
我试图在文档中查找,但没有找到指示。
我看了win32 watch的代码(因为我对API很熟悉,好像没有)。
文件删除跟踪在 windows 上非常复杂,因为 API 提供的文件名 "randomly" 已损坏,如果文件不再存在,则需要解析真实名称 "long path" 很难说原来是什么。
我已经为我以前的公司实现了这样的事情,保留文件的当前状态并协调内部发生更改的每个目录的文件列表。效果很好。
我的问题是:我是否错过了它并且 watchman 通知删除的文件?如果没有,是否有计划在不久的将来添加这些通知。
简短的回答:是的。
较长的答案:较复杂的部分并不完全 windows 具体。
可以在此处找到处理错位名称的位:
https://github.com/facebook/watchman/blob/master/root.c#L748
处理删除的位分为两部分;当我们准确检查我们收到通知的文件时,第一个处理事情:
https://github.com/facebook/watchman/blob/master/root.c#L853
第二种是一种 "garbage collection" 方法,我们查看包含目录并发现文件已经消失:
https://github.com/facebook/watchman/blob/master/root.c#L1353
我试图在文档中查找,但没有找到指示。
我看了win32 watch的代码(因为我对API很熟悉,好像没有)。
文件删除跟踪在 windows 上非常复杂,因为 API 提供的文件名 "randomly" 已损坏,如果文件不再存在,则需要解析真实名称 "long path" 很难说原来是什么。
我已经为我以前的公司实现了这样的事情,保留文件的当前状态并协调内部发生更改的每个目录的文件列表。效果很好。
我的问题是:我是否错过了它并且 watchman 通知删除的文件?如果没有,是否有计划在不久的将来添加这些通知。
简短的回答:是的。
较长的答案:较复杂的部分并不完全 windows 具体。
可以在此处找到处理错位名称的位: https://github.com/facebook/watchman/blob/master/root.c#L748
处理删除的位分为两部分;当我们准确检查我们收到通知的文件时,第一个处理事情: https://github.com/facebook/watchman/blob/master/root.c#L853
第二种是一种 "garbage collection" 方法,我们查看包含目录并发现文件已经消失: https://github.com/facebook/watchman/blob/master/root.c#L1353