repo sync 時自動切換當前分支的remote track分支的問題

使用repo sync時,如果當前倉庫有檢出本地分支,假設爲dev, 對應的遠程track分支爲origin/dev。 而manifest.xml中指定的track分支爲origin/master,那麼在repo sync時會自動將當前的dev分支的遠程track分支修改爲origin/master, 不僅如此,同時還會將origin/master上的修改rebase到本地的這個dev分支上。


projectA/: manifest switched refs/heads/dev...master
project projectA/
First, rewinding head to replay your work on top of it...
Applying: y

雖然repo會給出上面的提示信息" manifest switched",但經常會被接下來的輸出淹沒掉,而且很多時候這樣的行爲都不是我們想要的,要想終止這個行爲,可以這樣修改

diff --git a/project.py b/project.py
index 22e4a5d..3ce6500 100644
--- a/project.py
+++ b/project.py
@@ -1169,6 +1169,8 @@ class Project(object):
         syncbuf.info(self,
                      'manifest no longer tracks %s',
                      branch.merge)
+      syncbuf.fail(self, "branch is not consistent:%s, %s" %(branch.merge, self.revisionExpr))  
+      return
 
     if cnt_mine < len(local_changes):
       # Upstream rebased.  Not everything in HEAD


that's all

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章