なぜ必要なのか

翻訳ツールでボランティアが画面の文言を直します。保守チームはすでにhgスクリプトを使っています。Gitへ移行せず、修正可能な作業と共有済みの履歴を区別したいと考えています。

どう解決するのか

文言の修正をローカルにdraftとしてコミットします。チームのpublishingリポジトリへpushすると、両側でpublicになります。履歴を書き換える前に段階を確認します。

文言の修正がpublishing境界を越え、draftからpublicへ

翻訳ツール · 共有段階

同じ変更、新しい共有段階

draft

01 / ローカルの文言修正

hg commit · 新コミットの既定の段階

翻訳:保存の文言を明確にする

02 / hg push ↓

publishingに設定されたリモート

public

03 / 共有済みの履歴

ローカルとリモートの両方でpublic

同じ文言修正 · 履歴編集の前に確認

public段階 ≠ 一般公開。共有の履歴を表す段階であり、リポジトリの権限ではありません。

どんな考え方なのか

Mercurialは分散バージョン管理です。段階は権限ではなく共有状態で、publicはネット上での一般公開を意味しません。non-publishingのリモートではdraftを交換できます。必須連携がGitを要求するならGitが合う場合があります。

出典