ライブ カーソルを使用しない共同編集
パッチ、共有フォルダーと Git、および個別の章ファイルの所有。
ライブカーソルを使用しない共同編集
共同作成者のカーソルの動きを観察するリアルタイムの共同編集は、クラウド エディターが販売するモデルです。多くの優れた論文はそれなしで書かれています。著者がローカルで作業する場合、Git 上に構築された非同期コラボレーションが信頼できるパターンです。各人が自分のマシンで編集し、変更は 1 文字ずつではなく意図的にマージされます。それにはもう少し調整が必要ですが、オフライン作業、完全な履歴、そして誰のサーバーにも依存しないことでその分を返済します。
バックボーンとしての Git
標準セットアップは、通常は GitHub 上にある共有リポジトリで、全員がそこからプルしたりプッシュしたりできます。各作成者はセッションで作業します。つまり、最新の状態をプルし、書き込み、コミット、プッシュします。 LaTeX はプレーン テキストであるため、Git は論文のさまざまな部分に対する並行した変更を自動的にマージし、セットアップには数分かかります。 論文を GitHub に置く でカバーされています。共同作業者が Git ホストを使用できない、または使用しない場合、パッチがそのギャップを埋めます。「git format-patch」はコミットを電子メールで送信できる小さなファイルに変換し、受信者は「git am」でコミットを適用し、作成者と履歴をそのまま保ちます。これは古いワークフローであり、電子メールが利用できる場所であればどこでも今でも機能します。
ハイブリッドは、共同作成者がフォルダーの同期を要求する場合にも機能します。便宜上、共有コピーを Dropbox または Syncthing に保存しますが、Git 履歴の管理とマージの実行は 1 人に任せます。 .git ディレクトリ内で同期が競合するとリポジトリが破損するため、2 人のライブ Git チェックアウトを同じ同期フォルダーに向けないでください。
ドキュメントをファイルごとに分割する
人々が同じファイルをほとんど触らない場合、マージはまれになります。原稿を分割して、各章またはセクションが独自のファイル内に存在するようにします。ファイルは、\input{chapters/methods} を使用して薄い main.tex から取り込まれます。仕組みは ドキュメントをファイルに分割する にあります。次に、所有権を割り当てます。各共著者が独自のファイルに草稿を作成し、1 人のインテグレーターがプリアンブル、マージ、および表記とトーンの一貫性を保つための最終読み取りを処理します。これは、ソフトウェア チームが互いに踏みつけないようにする方法を反映しており、同じ理由で機能します。
実際に何が問題になるのか
避けるべき失敗パターンは、2 人が同じ時間枠で同じ段落を編集することです。 Git は競合としてフラグを立てます。LaTeX の競合は読み取り可能ですが、解決するのが面倒です。そのため、最も安価な修正はソーシャルです。「今日は入門に参加します」という簡単なメッセージで、ほとんどすべての競合を防ぐことができます。 2つの書く習慣は休息を減らします。ソース行ごとに 1 つの文を保持するため、隣接する文を並行して編集してもまったく衝突しません。また、各執筆セッションの直前にプルすることで、常に最新のテキストを編集できます。