天天看點

tortoiseSVN中工作副本怎樣跟蹤版本庫

工作副本怎樣跟蹤版本庫

對于工作副本的每一個檔案,Subversion 在管理目錄 .svn/ 記錄兩項關鍵的資訊:

目前工作副本的基準版本 ( file’s working revision ), 還有就是一個本地副本最後更新的時間戳。

給定這些資訊,通過與版本庫通訊,Subversion 可以告訴我們工作檔案是處與如下四種狀态的那一種:

  1. 未修改且是目前的

    檔案在工作目錄裡沒有修改,在工作版本之後沒有修改送出到版本庫。svn commit 操作不做任何事情,svn update 不做任何事情。

就是說在你update後,沒有人送出過此檔案的更改,同時你也沒有在這個檔案中有任何更改,
這份檔案和版本庫中的檔案是一模一樣的
           
  1. 本地已修改且是目前的

    工作副本已經修改,從基準版本之後沒有修改送出到版本庫。本地修改沒有送出,是以 commit 會成功的送出,update 不做任何事情。

意味着版本庫裡的這份檔案已經過期,你這份才是最新的,你此時update不會做任何事,
它不會覆寫掉你工作副本的任何改動,因為你目前的工作副本意味着是最新的版本,SVN
不會對它做任何改動
           
  1. 本地未修改且過時

    這個檔案在工作副本沒有修改,但在版本庫中已經修改了。這個檔案應當更新到最新公共版本。commit 不做任何事情,update 将會更新工作副本到最新的版本。

你這個版本的檔案其實已經過時,而且你也沒有要修改它的意思,當你更新時,新的版本會
覆寫掉你現在的檔案,當你commit,什麼事也不會發生.(其實SVN在你送出時,會先讓你更新,防止
你把版本庫的新版本給覆寫掉)
           
  1. 本地已修改且過時

    這個檔案在工作副本和版本庫中都被修改了。送出 該檔案将會因為 過時 而失敗。該檔案應該先更新; 更新 指令将會嘗試合并公共更改和本機更改。如果 Subversion 不能順利的自動完成合并,則需要使用者解決沖突。

為啥會失敗,這是因為的基礎版本号低,現在版本庫裡這個檔案的版本高,你update後,就會顯示沖突,好了,開始解決沖突吧
           
svn

繼續閱讀