4

Mercurial を使用してプロジェクトを管理していますが、同じプロジェクトの「ライト」バージョン (つまり、一部の機能が削除または簡素化されたバージョン) を作成したいと考えています。

ライト版はフル版とほとんどのコードを共有するため、次のいずれかを行う方がよいかどうかを検討しています。

  1. 元のプロジェクトのクローンを作成し、各プロジェクトを個別に保持します。
  2. 名前付きブランチを使用して、プロジェクトの両方のバージョンを同じリポジトリ内に維持します。

私たちはバージョン管理ソフトウェアにかなり慣れていないため、名前付きブランチを使用するのはこれが初めてです。誰かが各アプローチの長所と短所の概要を教えてください。2 つのプロジェクト間でバグ修正を維持するのに最も簡単なのは、どのアプローチですか?

ありがとう、

アンドリュー

4

2 に答える 2

0

同じ問題を抱えていたので、この質問に出くわしました。今、私はあなたと共有したい解決策を見つけました.

A と B の 2 つのデバイスがあり、どちらも基本的に同じファームウェアを持っていますが、保持されるはずの特定の違いがあるとします。したがって、2 つのバージョンは、 と の 2 つのブランチに保持されAますB

バージョンの 1 つで変更を加えると、特定の条件下でそれらを他のバージョンにマージできます。

条件は、共通の先行者 (共通のベース) が「与える」ブランチのものでなければならないということです。

これを確実にするために、次のことができます。

hg debugsetparents . <other branch before the modifications>

これを行った後、現在のワーキング セットは、データが安定したままであることを除いて、2 つのブランチのマージのようなものです。

この後、変更後に他のブランチとの「実際の」マージを実行できます。

そうすることで、与えられたブランチで手動で作成された共通ベースと与えられたブランチの最終状態との違いが正確に得られ、取得したい変更が正確に得られます。

于 2014-03-07T11:27:04.657 に答える