0

以下のように、いくつかの歴史的なチェンジセットを含むリポジトリにブランチがあるとしましょう。

== repository1 ==
( init)A -> B -> C -> D - E -> ...  (default branch)
                  \ 
                   \ -> C'1 -> C'2 -> C'3 -> ....  (branch1) 


今、私は以下のように別の別のリポジトリにブランチ1を移動(移植)したいと考えています。

== repository1 ==
(init)A -> B -> C -> D - E -> ...  (default branch)
                  \ 
                   \ -> C'1 -> C'2 -> C'3 -> ....  (branch1)

== repository2 ==
 (init)C'1 -> C'2 -> C'3 -> ...  (default branch)

誰もそれを行う方法を知っていますか? ありがとう。



更新:
祖先を含めずにリポジトリの一部を転送するのは少し奇妙に思えます。しばらくの間、大きなプロジェクトの開発を開始し、プロジェクトにお金を払っている人々が、プロジェクトのいくつかのコンポーネントをそれぞれ個別に独立して開発できるようにしたいという状況に遭遇しました。彼らはコンポーネントが独立した製品や小さなオープン ソース プロジェクトになるほど優れていると考えているため、関係のない過去のコードをリポジトリに残したくありません。

4

3 に答える 3

1

シーケンス(init)C'1 -> C'2 -> C'3 -> ... (default branch)に意味はありません。C'1その祖先が必要です!単純なクローンは、必要なものだけを取得する必要があります。

$ hg clone repository1 clonerepo -r C'3

Clonerepoには だけが含ま(init)A -> B -> C -> C'1 -> C'2 -> C'3れるようになりました。

于 2012-09-21T11:17:43.813 に答える
1

移植拡張機能 (前述のとおり) が最適かもしれませんが、convert 拡張機能も確認する必要があります。名目上は、他のリビジョン管理システムから Mercurial への変換を目的としていますが、フィルタリングと選択のための非常に精巧なサポートにより、ある Mercurial リポジトリから別のリポジトリへの「変換」にも役立ちます。

正確に何をしたいのかによって、「変換」はそれを表現する最も簡単な方法である場合とそうでない場合があります。

于 2012-09-21T09:57:51.763 に答える
1

あなたは自分でこの言葉を使いました: あなたが必要hg transplantです.

新しいレポを開始してから実行しますhg transplant -s <original_repo> -b branch1。そうするべきだと思います。

于 2012-09-21T08:33:00.123 に答える