svn是subversion的用戶端。下面介紹最基本的操作,詳細的操作可以參閱subversion文檔
1.簡介
subversion使用的是copy-modify-merge模型,是以一旦我們從subversion伺服器獲得工作拷貝 (check out)之後,就可以像修改普通本地檔案那樣修改這些拷貝。
subversion與vss 6.0(visual sourcesafe)的lock-modify-unlock模型很不一樣;它甚至與vss 8.0(visual studio 2005 附帶的vss版本)也有一點不一樣:對于vss 8.0,獲得檔案的操作是get latest version,而請求修改檔案的操作是check out;而subversion的checkout操作不是請求修改檔案,而是獲得私有的工作拷貝,這個意義上,checkout有點類似于vss的get latest version,但是subversion并不需要vss的checkout操作,一旦你獲得這些工作拷貝之後,你就可以立即開始工作了!
2.常用操作
下面假設subversion倉庫的位址是http://server/svn
a) check out
svn checkout http://server/svn
即可在目前目錄下建立一個工作拷貝,目錄名是svn
b) update
使用指令svn update可以用伺服器的版本更新你的工作拷貝
c) add
使用指令 svn add filename可以把filename這個檔案或者目錄以及目錄下面的所有檔案标志為添加狀态(實際上它并沒有立即添加,你可以檢視伺服器,這些檔案都還沒有添加進去的!),下一次你送出(commit)這些檔案的時候,伺服器就會把他們添加到版本庫。
d) stat
使用svn stat可以檢視檔案狀态(也就是是否被修改等)
e) commit
使用svn commit filename --message "leave words about this commit",可以送出本地修改到伺服器。如果不使用--message選項,則svn會自動打開一個配置檔案所指向的編輯器,裡面預設有一些修改資訊,你可以把這些資訊作為附注送出到伺服器。或者你也可以不使用--message而使用--file 來指定一個檔案作為送出時的附注。
f) switch
有時候管理者修改了版本庫的位址,比如修改了主機位址,修改了url等,此時用戶端也需要相應的修改:
svn switch --relocate http://xiao/svn http://xiao:81/svn
第一個位址是原來的版本庫位址(用svn info可以看到),後面的是新的版本庫位址。