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