天天看點

Subversion(SVN)使用

Subversion典型的工作周期是這樣的:

更新你的工作拷貝

svn update

做出修改

svn add

svn delete

svn copy

svn move

檢驗修改

svn status

svn diff

可能會取消一些修改

svn revert

解決沖突(合并别人的修改)

svn update

svn resolved

送出你的修改

svn commit

http://www.uml.org.cn/pzgl/2009032010.asp

http://www.yuanma.org/data/2009/0401/article_3598.htm

http://www.subversion.org.cn/svnbook/1.4/index.html

總結:在Commit前要Update一次,這樣合并了别人的最新修改Commit才能成功!

(Commit時會檢查本地版本号和版本庫中的最新版本号,隻有相同才能成功!!)

大多數情況下合并失敗很少,如果最新版本的檔案跟你修改交疊了這樣就産生了沖突,

對于每一個沖突的檔案,Subversion放置三個額外的未版本化檔案到你的工作拷貝:

l         filename.mine

你更新前的檔案,沒有沖突标志,隻是你最新更改的内容。(如果Subversion認為這個檔案不可以合并,.mine檔案不會建立,因為它和工作檔案相同。)

l         filename.rOLDREV

這是你的做更新操作以前的BASE版本檔案,就是你在上次更新之後未作更改的版本。

l         filename.rNEWREV

這是你的Subversion用戶端從伺服器剛剛收到的版本,這個檔案對應版本庫的HEAD版本。這裡OLDREV是你的.svn目錄中的修訂版本号,NEWREV是版本庫中HEAD的版本号。

但對于二進制格式,例如藝術品或聲音,在這種情況下,十分有必要讓使用者輪流修改檔案,因為它們的合并通常失敗。盡管Subversion一直主要是一個拷貝-修改-合并系統,但是它也意識到了需要鎖定一些檔案,并且提供這種鎖定機制(不是離線的)。

一旦你解決了沖突,你需要通過指令svn resolved讓Subversion知道!

Revert是離線操作,用.svn目錄的“原始”拷貝,把檔案恢複到未修改的狀态!

繼續閱讀