0

2つのリポジトリをmqextensionとマージして、次のようなリポジトリを作成しました。

.. [a] --- [b] --- [c] --- [d]<- default branch
                  / 
       [x] --- [y] <- feature branch

問題は、これをプッシュしようとすると、次のようになることです。

hg push --new-branch
abort: push creates new remote head x!
(did you forget to merge? use push -f to force)

どうすればこれを修正できますか?共通の祖先を持つために、[a]と[x]をマージする必要があると思います。これは可能ですか?プッシュを強制しただけで問題が発生しますか?

編集-もう少し調べてみると、リポジトリを少し単純化しすぎていることがわかりました。リポジトリは次のようになります。

.. [a] --- [b] --- [c] --- [d]<- default branch
      \                   
       [f] --- [g] --- [z] <- integration branch
                      / 
           [x] --- [y] <- feature branch
          /
       [w] <- default branch from old repository.

何が起こっているのかというと、デフォルトのブランチに2つのヘッドがあり、hgは両方をマスターにプッシュしたくないということです。

2つのデフォルトを一緒にマージする必要がありますか?

4

1 に答える 1

0

2つの無関係なリポジトリをマージするとこの問題が発生する理由はありません。試したところ、何の問題もなくプッシュしました。

グラフの左から右に時間が流れる場合は、頭が1つだけ[d]です。そのグラフは、2つのリポジトリをマージした後の予想どおりに見えます。

エラーメッセージは、他の誰かが変更を中央リポジトリにプッシュしたように見えるため、変更をブランチにマージする必要がhg pullあります。hg merge

編集-さらに情報を追加して編集した後、デフォルトのブランチに実際には2つのヘッドがあるようです。そうです、それらを。とマージする必要がありますhg merge

于 2012-08-29T12:27:49.627 に答える