0

A と B の 2 つのリポジトリがあります。A に 5 つの変更を加えましたが、B にも表示されるのはそのうちの 2 つだけです。

  1. 5 つの変更をレポ A にプッシュしました
  2. レポBのパスをレポAのパスに変更しました
  3. レポBの「着信変更セットを確認する」ボタンをクリックしました

レポ A に対して行った 5 つの変更が表示されます。「ここにプル」を試みましたが、これは私の場合は機能しません。選択したものより下のすべての変更セットを取得します。

たとえば、リストから最初と 3 番目の変更セットを取得するにはどうすればよいですか? まったく可能ですか?

ありがとう!:)

4

2 に答える 2

2

リポジトリ間で変更セットをプルする場合、その間の変更セットをスキップすることはできません。変更セットが 2 つのリポジトリで異なる親を持つ場合、それは同じ変更セットではありません。

必要な変更セットのパッチをエクスポートし、それらを他のリポジトリにインポートすることで、目的を達成できます。そうすれば、B のレポ A から必要な変更が得られますが、変更セットは2 つのレポジトリで 同じノード IDを持ちません。

于 2012-08-20T13:45:05.710 に答える
1

AとBは同じリポジトリのクローンだったようです。その場合は、おそらく分岐が必要です。を含む履歴がある場合A

C:\example>hg glog --template "rev{rev}:{desc}\r\n"
@  rev6:change7
|
o  rev5:change6
|
o  rev4:change5
|
o  rev3:change4
|
o  rev2:change3
|
o  rev1:change2
|
o  rev0:change1

あなたBが元々正しかったのにrev0、あなたがそれrev1を欲しがっrev3rev5追加したのなら、あなたはそれに更新してrev1移植することができます:rev3rev5

C:\example>hg update 1
0 files updated, 0 files merged, 5 files removed, 0 files unresolved

C:\example>hg glog --template "rev{rev}:{desc}\r\n"
o  rev6:change7
|
o  rev5:change6
|
o  rev4:change5
|
o  rev3:change4
|
o  rev2:change3
|
@  rev1:change2
|
o  rev0:change1

C:\example>hg graft 3 5
grafting revision 3
grafting revision 5

C:\example>hg glog --template "rev{rev}:{desc}\r\n"

@  rev8:change6      <--- contains change 1, 2, 4, 6
|
o  rev7:change4
|
| o  rev6:change7    <--- contains changes 1-7.
| |
| o  rev5:change6
| |
| o  rev4:change5
| |
| o  rev3:change4
| |
| o  rev2:change3
|/
o  rev1:change2
|
o  rev0:change1

Aチェンジセットの重複と少しの事前計画を回避するために、両方とBブランチに必要な変更をチェックインしBてマージするAことができますが、Aにのみ属するチェンジセットはAに直接チェックインできます。

C:\example>hg glog --template "rev{rev}:{branch}:{desc}\r\n"

@  rev8:A:change7     <--- contains changes 1-7.
|
o    rev7:A:Merge
|\
| o  rev6:B:change6   <--- contains change 1, 2, 4, 6
| |
o |  rev5:A:change5
| |
o |  rev4:A:Merge
|\|
| o  rev3:B:change4
| |
o |  rev2:A:change3
|/
o  rev1:default:change2
|
o  rev0:default:change1
于 2012-08-21T04:30:53.233 に答える