沒有即時遊標的共同創作
補丁、共用資料夾加 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 衝突是可讀的,但解決起來很繁瑣,因此最便宜的解決方案是社交:一條簡短的訊息說「我今天在介紹中」可以阻止幾乎所有衝突。兩個寫作習慣減少了休息。每個原始程式碼行保留一個句子,因此對相鄰句子的並行編輯根本不會發生衝突,並在每次寫作會話之前立即拉動,以便您始終編輯最新的文字。