これは、この質問で処理されたようなものですが、もう少し明確にするという点で、あなたの質問の方が優れていると思います。
要するに:はい、それは正常です。ここに少し説明があります:
これをメイン リポジトリ (ボックスはチェンジセット) で開始します。
main: --[E]--[F]--[G]
次に、本番サーバーにクローンを作成し、デプロイメントのカスタマイズを行う変更セット H を追加します。したがって、デプロイ リポジトリは次のようになります。
production: --[E]--[F]--[G]--[H]
その後、メイン リポジトリでさらに作業が行われ、変更セット I と J が追加され、メイン リポジトリが次のようになります。
main: --[E]--[F]--[G]--[I]--[J]
本番環境に移行すると、次のようになります。
production: --[E]--[F]--[G]--[I]--[J]
\
\-[H]
マージして取得する 2 つのヘッド:
production: --[E]--[F]--[G]--[I]--[J]
\ \
\-[H]-----[K]
ここで、K は単に J に H で最初に行った変更を加えたものです。
main でより多くの作業が行われるようになり、次のようになります。
main: --[E]--[F]--[G]--[I]--[J]--[L]--[M]
これを本番環境で取得すると、次のようになります。
production: --[E]--[F]--[G]--[I]--[J]--[L]--[M]
\ \
\-[H]-----[K]
次に、マージして取得します:
production: --[E]--[F]--[G]--[I]--[J]--[L]--[M]
\ \ \
\-[H]-----[K]-------[N]
したがって、メインから変更を取り込むたびに、マージを 1 回実行し、新しい変更セット (今回は N) を 1 つ作成します。
それが「当たり前」で大丈夫だと思います。
ただし、上記でリンクした質問の回答のいくつかを使用することで回避できます。元の H の親 (およびコンテンツ) を変更し続けるために使用できる新しいトリックがあり、常に最後に移動します新しいヒント。
トリックはRebase Extensionであり、本番環境で線形の履歴が生成されます (ただし、それを取得するために本質的にマージを行う必要があります)。変更セットがコミットされた後に変更するのは好きではないので、私はそれが好きではありませんが、H は本番環境から離れることはないので問題ありません。
他の答えは、mercurial キューであり、本番環境の変更を開発リポジトリでライブにし、本番環境で異なる何か(Host: ヘッダーなど) によってトリガーされます。