1
我目前正在從gitlab移動到gerrit的過程中,並試圖將最初從github克隆到gitlab的回購有多個提交。git推送失敗'不修改合併不是你所做的'推送到gerrit
我想使用的過程是:
git clone <gitlab repo>
cd <repo>
git remote add new-origin <newly created gerrit project>
git push new-origin
這適用於所有除了一個回購協議的。這給了我如下:
$ git push new-origin
Counting objects: 2292, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (819/819), done.
Writing objects: 100% (2292/2292), 188.26 KiB | 0 bytes/s, done.
Total 2292 (delta 1142), reused 2287 (delta 1138)
remote: Resolving deltas: 100% (1142/1142)
remote: Processing changes: refs: 1, done
To <newly created gerrit project>
! [remote rejected] production -> production (do not amend merges not made by you)
error: failed to push some refs to '<newly created gerrit project>'`
如果我嘗試從GitHub克隆原來的回購同樣的事情,它的工作原理沒有問題。
任何人都可以告訴我消息的含義以及如何解決推送問題。
這是格里特代碼,但我不明白它是什麼反對:
public List<CommitValidationMessage> onCommitReceived(
CommitReceivedEvent receiveEvent) throws CommitValidationException {
final PersonIdent author = receiveEvent.commit.getAuthorIdent();
if (receiveEvent.commit.getParentCount() > 1
&& author.getName().equals(gerritIdent.getName())
&& author.getEmailAddress().equals(gerritIdent.getEmailAddress())
&& !refControl.canForgeGerritServerIdentity()) {
throw new CommitValidationException("do not amend merges not made by you");
}
return Collections.<CommitValidationMessage>emptyList();
}
對於它的價值,這是Gerrit特有的,來自https://gerrit.googlesource.com/gerrit/+/d168b81bbb288cd5ad31c8d1bb1be513a31e9917/gerrit-server/src/main/java/com/google/gerrit的第418行/server/git/validators/CommitValidators.java – torek