1

Mercurial リポジトリの一部を複製する方法 (つまり clone -r xxx) はありますが、祖先だけでなく、指定されたリビジョンより前のすべての変更セットを保持しますか?

たとえば、次のようなレポがあるとします。

        -- 2 (branch default) -- 5 --  8 (merge) -- 9 (merge) -- 
      /                               /            /
0 -- 1  -- 3 (branch foo) ------ 6 --             /
      \                                          /
       -- 4 (branch bar) ------ 7 -------------

マージの前にコミットのみを複製したい、つまり、結果のレポは次のようになります。

        -- 2 (branch default) -- 5
      /
0 -- 1  -- 3 (branch foo) ------ 6
      \
       -- 4 (branch bar) ------ 7

しかし、実行中

hg clone -r 7 repo repo2

コミット1、4、および7(ブランチバー)のみを提供します。私が求めているものを取得する唯一の方法は、次のようなものです。

hg clone -r 5 repo repo2
cd repo2
hg pull -r 6
hg pull -r 7

それは正しいですか、または誰かがこれを行うためのより迅速な方法を知っていますか?

4

2 に答える 2

2

1 つのクローンで複数回使用できるオプション (つまり -r と -b)を読ん で覚えておく必要があります。hg help clone

あなたが望む、平易な言葉で「デフォルトで5つを含めてすべてクローンし FOOブランチ BARブランチ

クローンに翻訳する hg clone -r 5 -b foo -b bar <SRC REPO> <DST-REPO>

于 2012-11-27T22:30:58.977 に答える
1

hg help clone言う

-r --rev REV [+]       include the specified changeset

これはhg help log、たとえば、次のように言う とは異なります。

-r --rev REV [+]         show the specified revision or range

あなたができる最善のことは、-r複数回使用することです:

hg clone -r 5 -r 6 -r 7 repo repo2

およびリビジョン セットを使用logして、含める必要がある他のリビジョンを決定できます。

于 2012-11-27T21:58:03.507 に答える