Google Chrome OS ebuild上傳流程
還是經常會被ebuild上傳流程給打敗
這邊跟firmware-updater的方式不一樣
每次做都會遇到不一樣的狀況
最好的方式就是做個詳細的解說
當你使用git add或是其他git指令加完要上傳或是修改的檔案後輸入git commit -a
要先去參考一下git log
上面除了敘述之外還有三個欄位TEST、BUG、Change-Id。如果今天是想創建一個新的ebuild project,那就不用Change-Id。TEST與BUG其實填入你做了甚麼測試跟修了甚麼BUG。如果今天只是要修改ebuild後上傳,那就加入之前的Change-Id,Gerrit系統自然會分辨你要上傳的project是哪個。
然後改完之後使用"repo upload ."上傳,這代表上傳這個目錄下的東西就好。
如果通過應該會顯示下面的字眼
如果有問題會出現下面的狀況
老實說這每次都覺得很難搞
第一段是說要增加一個-r1的symlink或是改ebuild版號
第二段是要解決空白鍵的問題
但一直改不過
最後發現下"repo upload . --no-verify"
在這個選項再選NO,就可以建立出新的project
Run hook scripts from https://chromium.googlesource.com/chromiumos/manifest.git (yes/always/NO)? NO
一點小經驗:
這次要改ebuild裡面的東西,似乎就需要進版號
說實在頗麻煩,我到現在還是不太懂他的規則
這邊可能還需要去詳讀一下ebuild的上傳規則
目前又遇到問題是新修改的ebuild要上傳被說有空白鍵要消除
如果使用"repo upload . --no-verify"
會跳出Squash the commits with the same Change-Id or ensure Change-Ids are unique for each commit)
這表示有不同的Change-Id在不同的branch裡面
結果再使用git rebase -i刪除掉不同Change_Id的branch後
依然無法上傳,但沒有寫error msg
而且慘的是,git log裡那個branch完全消失了
看來只好用repo sync看看能不能恢復原狀
最後試了半天
使用git reset --hard & git reset HEAD^ --hard
將一些奇奇怪怪的地方恢復原狀後
再repo sync到最新的狀態
貼上aver-firmware的comment(Change-Id是要你想上傳的那一個)
再使用upload . --no-verify,終於可以把改過的東西上傳了
我終於理解為何每次commit完之後上傳都失敗了(幹,硬是要跟git規則不一樣)
# <make some changes>
但ebuild這邊並不是,其實只要使用git commit --amend修改之前的commit後(不改也可以)
再使用repo upload .上傳即可
這樣就不會跳出之前有多個Change-Id的問題
過了之後會出現這個畫面
把需要上傳的commit的#拿掉就可以完成上傳
有時候真的會被自己過去經驗給搞死
message還是要好好看,文件還是要好好讀
稍微還是要好好想過才有辦法快速地上手工作
這邊跟firmware-updater的方式不一樣
每次做都會遇到不一樣的狀況
最好的方式就是做個詳細的解說
當你使用git add或是其他git指令加完要上傳或是修改的檔案後輸入git commit -a
要先去參考一下git log
上面除了敘述之外還有三個欄位TEST、BUG、Change-Id。如果今天是想創建一個新的ebuild project,那就不用Change-Id。TEST與BUG其實填入你做了甚麼測試跟修了甚麼BUG。如果今天只是要修改ebuild後上傳,那就加入之前的Change-Id,Gerrit系統自然會分辨你要上傳的project是哪個。
然後改完之後使用"repo upload ."上傳,這代表上傳這個目錄下的東西就好。
如果通過應該會顯示下面的字眼
如果有問題會出現下面的狀況
老實說這每次都覺得很難搞
第一段是說要增加一個-r1的symlink或是改ebuild版號
第二段是要解決空白鍵的問題
但一直改不過
最後發現下"repo upload . --no-verify"
在這個選項再選NO,就可以建立出新的project
Run hook scripts from https://chromium.googlesource.com/chromiumos/manifest.git (yes/always/NO)? NO
一點小經驗:
這次要改ebuild裡面的東西,似乎就需要進版號
說實在頗麻煩,我到現在還是不太懂他的規則
這邊可能還需要去詳讀一下ebuild的上傳規則
目前又遇到問題是新修改的ebuild要上傳被說有空白鍵要消除
如果使用"repo upload . --no-verify"
會跳出Squash the commits with the same Change-Id or ensure Change-Ids are unique for each commit)
這表示有不同的Change-Id在不同的branch裡面
結果再使用git rebase -i刪除掉不同Change_Id的branch後
依然無法上傳,但沒有寫error msg
而且慘的是,git log裡那個branch完全消失了
看來只好用repo sync看看能不能恢復原狀
最後試了半天
使用git reset --hard & git reset HEAD^ --hard
將一些奇奇怪怪的地方恢復原狀後
再repo sync到最新的狀態
貼上aver-firmware的comment(Change-Id是要你想上傳的那一個)
再使用upload . --no-verify,終於可以把改過的東西上傳了
我終於理解為何每次commit完之後上傳都失敗了(幹,硬是要跟git規則不一樣)
# <make some changes>
$ git add -u . $ git commit --amend我一直以為commit應該要產生一個新的commit
但ebuild這邊並不是,其實只要使用git commit --amend修改之前的commit後(不改也可以)
再使用repo upload .上傳即可
這樣就不會跳出之前有多個Change-Id的問題
過了之後會出現這個畫面
把需要上傳的commit的#拿掉就可以完成上傳
有時候真的會被自己過去經驗給搞死
message還是要好好看,文件還是要好好讀
稍微還是要好好想過才有辦法快速地上手工作
留言
張貼留言