初始化檢出

大多數時候,你會使用checkout從版本庫取出一個新拷貝開始使用Subversion,這樣會在本機建立一個項目的「本地拷貝」,這個拷貝包括了指令列指定版本庫中的HEAD(最新的)版本:

$ svn checkout http://svn.collab.net/repos/svn/trunk
A    trunk/Makefile.in
A    trunk/ac-helpers
A    trunk/ac-helpers/install.sh
A    trunk/ac-helpers/install-sh
A    trunk/build.conf
…
Checked out revision 8810.

儘管上面的例子取出了trunk目錄,你也完全可以通過輸入特定URL取出任意深度的子目錄:

$ svn checkout \
      http://svn.collab.net/repos/svn/trunk/subversion/tests/cmdline/
A    cmdline/revert_tests.py
A    cmdline/diff_tests.py
A    cmdline/autoprop_tests.py
A    cmdline/xmltests
A    cmdline/xmltests/svn-test.sh
…
Checked out revision 8810.

因為Subversion使用「複製-修改-合併」模型而不是「鎖定-修改-解鎖」模型(見「版本模型」一節),你可以在工作副本中開始修改的目錄和文件,你的工作副本和你的系統中的其它文件和目錄完全一樣,你可以編輯並改變它,移動它,也可以完全的刪掉它,把它忘了。

警告

因為你的工作副本「同你系統上的文件和目錄沒有任何區別」,你可以隨意修改文件,但是你必須告訴Subversion你做的其他任何事。例如,你希望拷貝或移動工作副本的一個文件,你應該使用svn copy或者 svn move而不要使用操作系統的拷貝移動命令,我們會在本章後面詳細介紹。

除非你準備好了提交一個新文件或目錄,或改變了已存在的,否則沒有必要通知Subversion你做了什麼。

因為你可以使用版本庫的URL作為唯一參數取出一個工作副本,你也可以在版本庫URL之後指定一個目錄,這樣會將你的工作目錄放到你的新目錄,舉個例子:

$  svn checkout http://svn.collab.net/repos/svn/trunk subv
A    subv/Makefile.in
A    subv/ac-helpers
A    subv/ac-helpers/install.sh
A    subv/ac-helpers/install-sh
A    subv/build.conf
…
Checked out revision 8810.

這樣將把你的工作副本放到subv而不是和前面那樣放到trunk,如果subv不存在,將會自動建立。

禁用密碼快取

當你執行的Subversion命令需要認證時,預設情況下Subversion會在磁碟快取認證訊息,這樣做出於便利,在接下來的操作中你就可以不必輸入密碼,但如果你很在乎密碼快取,[3]你可以永久關閉快取或每次執行命令時說明。

在某次命令關閉密碼快取可以在命令中使用--no-auth-cache選項,如果希望永久關閉快取,可以在本機的Subversion設定文件中新增store-passwords = no這一行,詳情請見「客戶端憑證快取」一節

用其它身份認證

因為Subversion認證快取是預設設定(包含用戶名和密碼),用來記住上一次修改工作副本的人非常方便。但是有時候會不好用—特別是如果你使用的是共享工作副本,在這種情況下,你只需要為指令列傳遞--username選項,Subversion就會嘗試使用該用戶認證,如果需要也提示你輸入密碼。



[3] 當然,你不必太過擔心—首先你要知道你不會從Subversion真的刪除文件,第二,Subversion密碼不是和你的三百萬個密碼的任何一個相同,對吧?對吧?