repo sync 時自動切換當前分支的remote track分支的問題
阿新 • • 發佈:2018-10-31
使用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