说明:
我是一个Java开发,为了防止我忘了push代码,使用飞牛同步将项目文件目录添加了飞牛同步任务同步到我的飞牛NAS。
(这个项目文件是我存放几十个不同项目文件的目录,小文件很多)
今天程序开发时,遇到新增的程序文件变更内容后无法被IntelliJ IDEA加载、停止目录同步时文件直接消失的严重问题。
(在之前也遇到文件无法被IntelliJ IDEA正确加载的问题,我通过重命名包命或者修改文件名又好了,当时还以为是Intellij IDEA的问题,直到出现今天的情况,我想可能是因为飞牛同步导致的)
经历:
(由于停止飞牛同步任务后,ProPurchaseOrder.java文件不见了,所以无法提供文件内容)
我正使用IntelliJ IDEA开发Java程序,新增了业务的java文件编辑完成后,去编辑别的文件完成后重新编译运行突然提示文件丢失。提示:

我打开ProPurchaseOrderMapper.java,ProPurchaseOrder的引用标红如下:

Intellij IDEA打开entity包,发现ProPurchaseOrder.java文件不存在了。
在没有停止飞牛同步任务时,使用Windows的资源管理器打开entity目录ProPurchaseOrder.java是存在的,在状态栏显示一个圈圈代表正在同步中,但是IntelliJ IDEA无法加载这个文件。(由于文件在后续操作中已经不见了, 所以无法提供截图)
于是我就想停止飞牛同步任务,看看重启IntelliJ IDEA之后能否再加载这个文件,在飞牛同步中删除了这个目录的同步任务。
此时,更严重的问题出现了:ProPurchaseOrder.java文件不见了,同时不见的还有一起修改的ProPurchaseOrderController.java、ProPurchaseOrderService.java、ProPurchaseOrderServiceImpl.java
(还好昨晚下班有push代码,可以从代码仓库找回来,但是今天变更的代码内容全没了。损失了这次修改的内容)
经上所述,我的分析存在以下我认为是比较严重的问题:
- 飞牛同步在同步文件时会占用文件,影响其他编辑器加载这个文件
- 飞牛同步在停止目录的同步任务时,会删除未同步完成的文件
我还发现,删除了同步任务同步日志也会被删除。日志最重要的作用就是记录,不代表任务删除了,日志也要删除,除非用户自己选择删除日志。
无论如何,删除任务或者同步任务失败什么,文件不应该被删除,如果我没有push代码,这个文件内容将会找不回来了,所以是一个比较大的隐患。希望飞牛团队能够注意到这个帖子,同时提醒用户注意这个情况,以免造成什么损失。
软件版本截图:


