2013-12-14 27 views
0

我剛剛創建了一個新的更改,我希望將其更改爲Gerrit。我做了(我希望)通常的方式,即創建新的分支,做魔術,提交。現在,我想推動對Gerrit的改變。所以......Gerrit不接受新創建的更改/分支

git checkout 82-changes-and-fixes-to-files-view 
git push origin HEAD:refs/for/82-changes-and-fixes-to-files-view 

(緊縮,緊縮)

! [remote rejected] HEAD -> refs/for/82-changes-and-fixes-to-files-view (branch 82-changes-and-fixes-to-files-view not found) 

分公司沒有發現?嗯......我想起了一些東西,那個文檔在之前通過Gerrit UI 推動了一些關於手動創建分支的事情。我對嗎?無論如何,我正在這樣做。我通過UI創建了一個分支,並將其命名爲(82-changes-and-fixes-to-files-view)和相應的修訂版,取自git status2b25fe7612f1563a78c9dc2d1574ae3dcfe9d5a1)。並再次...

git push origin HEAD:refs/for/82-changes-and-fixes-to-files-view 

(緊縮,cruch)

! [remote rejected] HEAD -> refs/for/82-changes-and-fixes-to-files-view (no new changes) 

的Eee ...我缺少什麼? Gerrit如何聲稱,沒有任何變化,如果我其實還沒有推過任何代碼呢(沒有這樣的變化,當然是以上名字,都沒有記錄也沒有合併變更在Gerrit UI中)?

+0

另請檢查您是否已將此提交推送到不同分支上的gerrit? – mrutyunjay

回答

0

此問題的解決方案總是使用當前HEAD的上次提交ID,而不是提交給您的分支的提交ID。使用分支的最後一個提交ID是錯誤的。爲什麼 - 這超出了我的想象。

所以,正確的路徑是:

  1. 創建使用UI,並給予HEAD的版本分支。
  2. 將變化(該分支)推送給Gerrit,不要忘記正確的參考。
  3. 訪問頁面,Gerrit向您推送的URL是您推送的結果,並查看您的更改或等待其他人對其進行審閱。

作爲替代方案,您可以簡單地點擊Create Branch並將Initial Revision字段設爲空,Gerrit將自動填充它。然後再次按下Create Branch按鈕。

編輯:這個答案只是解釋,該怎麼做,以獲得Gerrit接受的變化。它沒有解釋,爲什麼在前面的方法(解釋有問題)中,Gerrit聲稱,沒有變化並且不接受代碼,而實際上它根本沒有代碼(對於那個特定的分支)。對我而言,這是一個巨大的bug,導致代碼損失。(根據下面的註釋不正確)

+1

如果您創建了一個指向提交2b25fe76的新分支,那麼在同一分支上推送相同的提交以進行審閱顯然是無操作的,因爲分支已經指向該提交。像Gerrit所說,沒有新的變化。 –

+0

對我來說真正的問題是爲什麼我必須通過UI手動創建該分支?爲什麼Gerrit自己無法處理?我推動一個特定的分支,那麼自動創建它有什麼問題? – trejder

+0

Magnus,再次閱讀我的問題並修改了答案。分支'82-changes-and-fixes-to-files-view'在第一次被拒絕時丟失,第二次(因爲我指出通過UI創建的分支錯誤提交 - 2b25fe76)也被拒絕,因爲沒有改變。在效果中,Gerrit **沒有得到任何字節的代碼**用於分支「82-changes-and-fixes-to-files-view」(這兩個嘗試都被拒絕了,所以沒有實際推送這個代碼),而它聲稱它有(_no changes_)。這似乎是一個巨大的bug,或者我錯過了一些明顯的東西。 – trejder