在我们开发项目,Coding的过程中,有下面几种开发模式:
- 直接在服务器上开发,这样的优点是可以实时的修改程序调试,但是在涉及到多人开发的情况下,容易互相覆盖,同时开发效率也没有在IDE中高。
- 在本地IDE开发完,全量同步到远程服务器,这样的问题是如果项目过大,同步时间过长。
- 本地IDE开发增量同步,只将增量变化的文件同步。
上面的方案三是最省事的,现在很多IDE默认支持通过SFTP来实现实时同步,和我们现在的方案其实差不多,由于在Mac下fswatch可以实时监控文件变化,Rsync可以实现同步文件。当然,你也可以自己实现一个server,通过http网络请求来完成,这里就不重复造轮子了。
fswatch和rsync
由于需要fswatch和rsync,在MacOS下只需通过一下安装:
关于fswatch可以阅读这篇文章,rsync的使用方法也可以参考这篇文档。
Rsync 的特色:
快速:第一次同步时 rsync 会复制全部内容,但在下一次只传输修改过的文件。
安全:rsync 允许通过 ssh 协议来加密传输数据。
更少的带宽:rsync 在传输数据的过程中可以实行压缩及解压缩操作,因此可以使用更少的带宽。
特权:安装和执行 rsync 无需特别的权限
基本语法:rsync options source destination
排除不需要的文件
在开发过程中,在IDE中有一些配置文件或是我们不需要上传的文件,可以通过exclude参数过滤掉,如果是少量单个文件,可以如下使用:
如果是针对多个文件夹,可以通过配置过滤文件的方式来实现:
使用
安装及配置好上述之后,可以按以下方式运行:
下面是我的一个栗子:
以上为所有流程,源码可以参考autoSync。