### 初始化的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`。