2016-11-07 8 views
0
Gerrit version: 2.12.4 
Git version: 1.7.9.5 

Project Options 
Submit Type: Merge if Necessary 
Allow content merges: false 
Create a new change for every commit not in the target branch: false 

Gerritの「マージ競合」によってチェリーがターゲットブランチにコミットできません。だから私たちは地元でそれを見て、紛争が何であるかを見ます。チェリーピックはGerrit UIで失敗しますが、ローカルのgit-cherry-pickで成功します

リポジトリをクローンします。ターゲットブランチをチェックアウトします。新しいコミットは提出されていません。追加オプションなしでcherry-pickコマンドgit fetch ssh://foo refs/changes/xx/yyyxx/1 && git cherry-pick FETCH_HEADをコピーして貼り付けます。チェリーピックは失敗せず、争いもない。プッシュ、レビュー、提出完了しました。したがって、gitコマンドを使ってうまく動作します。

私はテストを行います。 Allow content mergesをtrueに設定した場合、このような競合は発生しません。しかし、「コンテンツマージンを許可する」というのは、間違ったやりかたで軽微な矛盾を解決することがあるため、期待されていません。

誰かが似たようなケースに遭遇したことがあるのか​​、そしてチェリーピックがジェリットとローカルレポで異なる動作をするのかを知りたいと思います。

ご意見ありがとうございます。

答えて

0

ローカルではGitを使用していますが、GerritはJGitを使用しています。おそらく、マージ戦略では多少の違いがあります。

+0

JGitは問題はないがGitが失敗した場合、私はマージ戦略を責められるかもしれない。 git-cherry-pickのオプションでは、成功したチェリーピックが失敗することはありません。だから私はそれがバグかどうか疑問に思います。 – ElpieKay