对于已经在使用 Rsync、Unison 等第三方同步工具的用户,可能更倾向于不使用 Org 模式中高度依赖 Tramp 的内置远程发布功能。Tramp 虽然实用且功能强大,但在批量传输多个文件时效率不高,且在高负载使用场景下已知会出现问题。
专业的同步工具具备多项优势。除了对比时间戳,它们还会校验文件内容与权限/属性。因此你可以选择先将网站发布到本地目录—甚至直接与 Org 文件放在 同一位置—再通过 Unison 或 Rsync 与远程主机完成同步。
以 Unison 为例,它可以配置仅向指定远程目标传输哪些文件,能大幅简化项目发布的配置逻辑。只需将所有文件放在正确位置,通过 org-publish 处理 Org 文件,后续同步工作交由同步工具完成即可。这种场景下无需在项目配置中包含 JPG、CSS、PNG 等附件文件,第三方工具会自动同步这些内容。
发布到本地目录的速度也远快于远程发布,因此可以更轻松地重新发布整个项目。若将 org-publish-use-timestamps-flag 设置为 nil ,还能确保重新包含所有已修改的外部文件,例如通过 ‘INCLUDE’ 关键字引入的示例源码文件。Org 内置的时间戳机制无法智能检测被引入文件是否发生修改。