总而言之,我需要构建一个简单的Dropbox clone来与我的服务器同步文件。
我完成了我的作业,我做了很多研究,但我找到的解决方案(包括代码和已经解决的解决方案)似乎都不够好。
我已经在stackoverflow上阅读了其他帖子,唯一的区别是我需要在文件系统事件上触发同步任务。此外,git已用于实际版本控制目的,我无法将其用于此同步任务。
这是我的设置:
我在github上有一个git存储库,我使用capistrano进行常规部署。这就是我的问题:我们有基础设施和数据影响,这使得无法进行真正的本地开发。
我的代码可以在本地存在,我可以在github上对其进行版本化,但需要在服务器上运行,即使我在开发时也是如此。 为了避免牛仔的发展,我提出了这个解决方案:
请记住,这仅适用于前端层,涉及数百个tpl(html + smarty),css和js文件*
主分支为公众运行
这样,这可以是我们的工作流程:
这样,当谈到git工作流时,每个开发人员的ghost存储库都完全没有了(就git而言,这些ghost存储库甚至不存在,它们只是一个实用程序开发商)。
鉴于这个(很长!)前提,这些是我需要的功能:
已经制作的""解决方案:
只有GoodSync似乎提供了我需要的东西,但我无法以任何可能的方式使自动更新功能(文件系统更新同步)工作。
在我必须自己制作的食谱中,我已经阅读了有关FSEvents,inotify(linux)+ rsync选项的信息,但它们可能有点超出了我的联盟(我可以做基本的应用程序,使用FSEvents API或inotify可能不是很多)
所以这就是我现在所处的位置。我对任何类型的建议持开放态度,我事先感谢您就此问题分享的任何内容。
谢谢!
答案 0 :(得分:2)
我会推荐一个带有samba共享的本地linux服务器,开发人员可以在本地工作。然后,本地服务器将使用lsyncd(用户友好的inotify / rsync / ssh解决方案)与远程服务器同步。我已经部署了一个非常成功的解决方案,它很容易设置(没有高级/自定义脚本)。
另请参阅以下内容:
答案 1 :(得分:0)
在我看来,你正试图以艰难的方式去做。
我在一个拥有大量源代码的软件项目上工作,最好是在服务器而不是我的家用机器上构建,我只需要进入服务器并以这种方式编辑源代码。 (实际上,我使用NX来使用远程X-windows会话,但它也是相同的。)服务器在加利福尼亚,我在英国,延迟不是问题,所以除非你是在一个可怕的连接上运作,我没有看到任何更高级的点。
如果必须使用本地编辑器,请尝试使用sshfs安装远程系统。它并不理想,但它有效。我不建议做那些扫描很多文件的东西。
否则,如果您必须使用镜像目录,为什么它必须是自动的?当然,开发人员知道他何时想测试更改并且只能点击rsync按钮?