2017-07-06 38 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權限才能成功推送。