使用 Syncthing 同步我的代码

平时我上课写码要来往于 2 个地方,我有一台 Macbook Pro,但我还是不喜欢用笔记本工作。把笔记本接入 hub 当作台式机的方案也不满意(太贵,hub太贵了),只能考虑如何在多台设备间同步我的工作咯。

2000块的雷电3拓展坞
— 2000块的雷电3拓展坞

我主要写前端代码比较多,需要同步的就是些程序代码。虽然有 git ,但我不可能 push 写到一半的代码,我需要一个自动同步网盘。

支持文件过滤:前端的依赖库都保存在 node_modules 中,它的大小十分恐怖,同步软件一定要有过滤功能支持过滤 node_modules。

磁盘奇点 node_modules
— 磁盘奇点 node_modules

支持跨平台:我常用的工作电脑大概有3台(两台PC和一台mac),同步软件还必须要支持跨平台。

远程文件共享协议(NFS,SMB)?

在挑选同步软件之前,我也尝试了一些远程文件共享协议例如 NFS 和 SMB,它的好处是操作系统直接提供实现,不需要另外安装软件,挂载起来使用就和普通的磁盘一样。

首先我发现 NFS 在公网访问延迟较高的时候速度很慢,而且 NFSv3 不支持身份验证还需要配合 ssh 或其他工具加密,速度太慢无法接受。另外 NFS 在 windows 访问还有很多坑,体验极差。

最主要的问题是远程文件共享协议没法设置过滤 node_modules,在不同操作系统之间共享 node_modules 总觉得会出什么问题。

自动同步软件

Google Drive 、 Dropbox 、 iCloud 和 Onedrive 因为无法过滤 node_modules 直接淘汰。而且这些软件竟然都没有文件冲突提醒,用了一段时间后,留下一大堆冲突副本。

Nextcloud 和 Owncloud 功能强大,但在处理大量小文件的时候效率低下,不适合同步代码。

群晖的 Cloud Station 看起来不错,但我没有群晖,也懒得折腾。

看来看去也只有 Resilio Sync 和 Syncthing 基本符合我的要求。

Resilio Sync 和 Syncthing

Resilio Sync 和 Syncthing 是 2 款分布式同步软件,同步无需第三方服务器,至少有一个节点在线就可以进行同步。缺点是连接速度慢,需要搜索节点等步骤,文件冲突也会比一般软件多一些。

Resilio Sync 原名叫 BitTorrent Sync,改名后商业化比较严重。Syncthing 是它的开源替代品。

实际使用起来2款软件功能差不多。Resilio Sync 连接速度更快,移动设备支持可选文件同步,使用比较友好。Syncthing 同步时会主动提醒文件冲突,很有安全感,但是没有 ios 版,在 Android 版中也不能选择同步某个文件,只能同步整个文件夹。

2 款软件都有 headless 服务端,可以把它放在你的服务器上,这样就有了一个 24 小时运行的节点,随时都可以同步了。

Resilio Sync 设置使用方便,但高级功能需要付费。Syncthing 设置繁琐,连接也慢,但开源免费,如何选择就看个人取舍了。

开源拖拉机
— 开源拖拉机

这2款软件都支持类似 .gitignore 的忽略同步规则。可以设置忽略各个操作系统的临时文件和 node_modules。

我最后选择了 Syncthing,因为

FREEDOM

“使用 Syncthing 同步我的代码”的一个回复

发表评论

电子邮件地址不会被公开。 必填项已用*标注