2017-07-06 153 views
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(); 
} 
+0

对于它的价值,这是Gerrit特有的,来自https://gerrit.googlesource.com/gerrit/+/d168b81bbb288cd5ad31c8d1bb1be513a31e9917/gerrit-server/src/main/java/com/google/gerrit的第418行/server/git/validators/CommitValidators.java – torek

回答

0

我得到同样的错误信息。就我而言,我的Gerrit服务器的管理员必须授予我Forge Author和Forge Server权限才能成功推送。