天天看點

移植代碼打patch遇到的一些問題

今天在公司移植代碼打patch,遇到一些問題記錄下來,以後注意。

一、公司打patch是為了移植安卓p上打代碼到q上,不需要自己打包patch,主要是對比兩方面打代碼,把每一筆送出原樣修改。由于每一筆送出的代碼修改量很大,用指令一鍵搞定是不現實的。需要靠自己手動修改。

二、送出代碼時需要送出到gerrit上,大緻就是git add ,git commit , git push 三部曲。由于是移植代碼,送出commit是需要進行修改打,有兩種方法。

(一)、git commit 時進行修改

(二)、git commit --amend進行補充修改

(一)方法隻能在push前添加注釋,(二)方法在push前後都可以對送出進行補充。後面添加不同參數有不同效果,網上相關文章很多,不一一詳述。由于之前一直使用git commit -m來添加注釋,居然不知道git commit會進入commit 的檔案裡,可以直接進行修改,真是慚愧。

三、由于公司有配置jenkins,提到gerrit後就依靠自己在伺服器編譯版本驗證,友善是友善,由于要考慮整個系統的穩定性,隻能整編,一次要兩個小時,對于驗證來說時間還是太長了。遇到沖突問題不能及時解決。還是要在本地單編,盡快找到沖突點,完成一個子產品或者一個檔案夾,再提jenkins可以提升效率。

四、在一開始送出時發現有内容錯誤,回退送出,使用的是reset --hard

reset --hard 會在重置 HEAD 和branch的同時,重置stage區和工作目錄裡的内容。

很悲催,還要重新修改。

應該 reset --soft 這樣可以保留工作目錄,并把重置 HEAD 所帶來的新的差異放進暫存區。

修改錯誤後再次送出就可以減少重複工作量提升效率。

五、沖突的相關代碼在gerrit裡會有提示,在代碼前有 》》 提示此處出錯,對比p,q上打代碼進行修改。修改沒有定招,隻能見招拆招。