导出一个Subversion工作副本

有时候你需要一个没有.svn目录的工作目录树,例如,创建一份源代码的压缩文件,或者导出一份用作WEB服务器。不用先复制,然后手工删除所有.svn目录。TortoiseSVN提供命令TortoiseSVN导出...。如果你要用这个功能操作拥有一份工作副本,将会在要求你保存一份干净的文件。从URL或工作副本导出有少许不同。

图 5.47. 从 URL 导出对话框

从 URL 导出对话框


如果你在未版本控制的目录执行此命令,TortoiseSVN会假定此目录是目标,弹出对话框让你输入要导出的URL和版本。这个对话框有只导出顶级目录,省略外部引用,以及不管svn:eol-style的取值,重新设置行结束样式等选项。

当然,你也可以直接从版本库导出。使用版本库浏览器浏览有关子树,然后使用右键菜单导出。就会出现上面所说的从URL导出对话框。

如果你要用这个功能操作工作副本,将会询问你要保存干净而没有.svn目录的副本到何处。默认情况下,只导出被版本控制的文件,但你可以使用同时导出未受版本控制的文件来将版本库中没有但在你的本地副本中存在的文件导出来。另外可以使用svn:externals来忽略外部引用。

另外一个导出的方法是 右键拖工作副本到另外的保存位置,然后选择右键菜单SVN导出到这儿或者右键菜单SVN 导出全部到这儿。后者可以把未受版本控制的文件也导出。

导出工作副本时,如果目标目录包含了和你导出的名称相同的目录,你需要使用此选项重写已经存在的内容,或者使用自动生成的名称,例如目标 (1)

从版本控制里移除删除工作副本

Sometimes you have a working copy which you want to convert back to a normal folder without the .svn directories. What you really need is an export-in-place command, that just removes the control directories rather than generating a new clean directory tree.

The answer is surprisingly simple - export the folder to itself! TortoiseSVN detects this special case and asks if you want to make the working copy unversioned. If you answer yes the control directories will be removed and you will have a plain, unversioned directory tree.