没有实时光标的共同创作

补丁、共享文件夹加 Git,并拥有单独的章节文件。

没有实时光标的共同创作

实时协作编辑(您可以在其中观察合著者的光标移动)是云​​编辑器销售的模型。很多好的论文都是在没有它的情况下写成的。当作者在本地工作时,基于 Git 构建的异步协作是可靠的模式:每个人在自己的机器上进行编辑,并且更改是有意合并的,而不是逐字符合并。它需要稍微多一点的协调,并以离线工作、完整的历史记录和不依赖任何人的服务器来回报它。

Git 作为骨干

标准设置是一个共享存储库,通常位于 GitHub 上,每个人都可以从中提取和推送。每个作者都在会话中工作:拉取最新状态、写入、提交、推送。由于 LaTeX 是纯文本,Git 会自动将并行更改合并到论文的不同部分,并且设置需要几分钟。 将论文放在 GitHub 上 涵盖了它。当一位协作者无法或不会使用 Git 主机时,补丁会填补空白:“git format-patch”将提交转换为可以通过电子邮件发送的小文件,收件人使用“git am”应用它们,从而保持作者身份和历史记录完整。这是一个古老的工作流程,但它仍然适用于任何电子邮件所在的地方。

当合著者坚持使用同步文件夹时,混合也适用:为了方便起见,将共享副本保留在 Dropbox 或 Syncthing 中,但让一个人维护 Git 历史记录并执行合并。不要将两个人的实时 Git 签出指向同一个同步文件夹,因为“.git”目录损坏的存储库内会发生同步冲突。

按文件划分文档

当人们很少接触同一个文件时,合并就变得很少见。拆分手稿,使每个章节都存在于自己的文件中,从带有“\input{chapters/methods}”的薄“main.tex”中拉入。机制位于将文档拆分为文件。然后分配所有权:每位合著者在自己的文件中起草,由一名集成商处理序言、合并和最终阅读,以确保符号和语气的一致性。这反映了软件团队如何避免互相踩踏,并且出于同样的原因。

到底出了什么问题

要避免的失败模式是两个人在同一时间窗口编辑同一段落。 Git 会将其标记为冲突,而 LaTeX 冲突是可读的,但解决起来很繁琐,因此最便宜的解决方案是社交:一条简短的消息说“我今天在介绍中”可以阻止几乎所有冲突。两个写作习惯减少了休息。每个源代码行保留一个句子,因此对相邻句子的并行编辑根本不会发生冲突,并在每次写作会话之前立即拉动,以便您始终编辑最新的文本。

返回 本地工作室