初始化的Checkout
最后更新于:2022-04-02 05:56:20
### 初始化的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`。
';