### 初始化的Checkout
大多數時候,你會使用*checkout*從版本庫取出一個新拷貝開始使用Subversion,這樣會在本機創建一個項目的本地拷貝,這個拷貝包括版本庫中的HEAD(最新的)版本:
~~~
$ svn checkout http://svn.collab.net/repos/svn/trunk
A trunk/subversion.dsw
A trunk/svn_check.dsp
A trunk/COMMITTERS
A trunk/configure.in
A trunk/IDEAS
…
Checked out revision 2499.
~~~
**版本庫規劃**
你也許會為在每個URL上包括`trunk`感到好奇,我們將在[第4章 *分支與合并*]( "第4章分支與合并")詳細論述這種推薦的規劃方式。
盡管上面的例子取出了trunk目錄,你也完全可以通過輸入特定URL取出任意深度的子目錄:
~~~
$ svn checkout http://svn.collab.net/repos/svn/trunk/doc/book/tools
A tools/readme-dblite.html
A tools/fo-stylesheet.xsl
A tools/svnbook.el
A tools/dtd
A tools/dtd/dblite.dtd
…
Checked out revision 2499.
~~~
因為Subversion使用“拷貝-修改-合并”模型而不是“鎖定-修改-解鎖”模型(見[第2章 *基本概念*]( "第2章基本概念")),你可以開始修改工作拷貝中的目錄和文件,你的工作拷貝和你的系統中的其它文件和目錄完全一樣,你可以編輯并改變它,移動它,也可以完全的刪掉它,把它忘了。
### 注意
因為你的工作拷貝“同你的系統上的文件和目錄沒有什么區別”,如果你希望重新規劃工作拷貝,你必須要讓Subversion知道,當你希望拷貝或者移動工作拷貝的一個項目時,你應該使用**svn copy**或者 **svn move**而不要使用操作系統的命令,我們會在以后的章節詳細介紹。
除非你準備好了提交一個新文件或目錄,或改變了已存在的,否則沒有必要通知Subversion你做了什么。
**`.svn`目錄包含什么?**
工作拷貝中的任何一個目錄包括一個名為`.svn`管理區域,通常列表操作不顯示這個目錄,但它仍然是一個非常重要的目錄,無論你做什么?不要刪除或是更改這個管理區域的任何東西,Subversion使用它來管理工作拷貝。
因為你可以使用版本庫的URL作為唯一參數取出一個工作拷貝,你也可以在版本庫URL之后指定一個目錄,這樣會將你的工作目錄放到你的新目錄,舉個例子:
~~~
$ svn checkout http://svn.collab.net/repos/svn/trunk subv
A subv/subversion.dsw
A subv/svn_check.dsp
A subv/COMMITTERS
A subv/configure.in
A subv/IDEAS
…
Checked out revision 2499.
~~~
這樣將把你的工作拷貝放到`subv`而不是和前面那樣放到`trunk`。
- 第1章介紹
- Subversion的歷史
- Subversion的特性
- Subversion的架構
- 安裝Subversion
- Subversion的組件
- 快速入門
- 第2章基本概念
- 版本模型
- Subversion實戰
- 摘要
- 第3章指導教程
- 導入
- 修訂版本: 號碼、關鍵字和日期,噢,我的!
- 初始化的Checkout
- 基本的工作周期
- 檢驗歷史
- 其他有用的命令
- 摘要
- 第4章分支與合并
- 使用分支
- 在分支間拷貝修改
- 常見用例
- 轉換工作拷貝
- 標簽
- 分支維護
- 摘要
- 第5章版本庫管理
- 版本庫的創建和配置
- 版本庫維護
- 添加項目
- 摘要
- 第6章配置服務器
- 網絡模型
- svnserve,一個自定義的服務器
- httpd,Apache的HTTP服務器
- 支持多種版本庫訪問方法
- 第7章高級主題
- 屬性
- Peg和實施修訂版本
- 外部定義
- 賣主分支
- 本地化
- Subversion版本庫URL
- 第8章開發者信息
- 使用API
- 進入工作拷貝的管理區
- WebDAV
- 使用內存池編程
- 為Subversion做貢獻
- 第9章Subversion完全參考
- svn add
- svn blame
- svn cat
- svn checkout
- svn cleanup
- svn commit
- svn copy
- svn delete
- svn diff
- svn export
- svn help
- svn import
- svn info
- svn list
- svn log
- svn merge
- svn mkdir
- svn move
- svn propdel
- svn propedit
- svn propget
- svn proplist
- svn propset
- svn resolved
- svn revert
- svn status
- svn switch
- svn update
- svnadmin
- svnadmin create
- svnadmin deltify
- svnadmin dump
- svnadmin help
- svnadmin hotcopy
- svnadmin list-dblogs
- svnadmin list-unused-dblogs
- svnadmin load
- svnadmin lstxns
- svnadmin recover
- svnadmin rmtxns
- svnadmin setlog
- svnadmin verify
- svnlook
- svnlook author
- svnlook cat
- svnlook changed
- svnlook date
- svnlook diff
- svnlook dirs-changed
- svnlook help
- svnlook history
- svnlook info
- svnlook log
- svnlook propget
- svnlook proplist
- svnlook tree
- svnlook uuid
- svnlook youngest
- svnserve
- svnversion
- mod_dav_svn Configuration Directives
- 附錄A.Subversion對于CVS用戶
- 目錄的版本
- 更多離線操作
- 區分狀態和更新
- 分支和標簽
- 元數據屬性
- 沖突解決
- 二進制文件和轉化
- 版本化的模塊
- 認證
- 轉化CVS版本庫到Subversion
- 附錄C.WebDAV和自動版本化
- 自動版本化交互性
- Subversion和DeltaV
- 術語表