TortoiseSVN Logo

取消版本控制工作副本

很多人在我们的邮件列表中询问如何“取消版本控制工作副本”、“从仓库分离/取消链接工作副本”、“从版本控制中删除文件”或类似的操作。所有这些问题都指向用户想要删除每个 Subversion 工作副本中隐藏的 .svn 文件夹。

通常,您需要版本化文件的“干净副本”用于压缩、存档等...
Subversion 中执行此操作的命令是“导出”。导出工作副本或仓库 URL 将创建所有文件的副本,但不包含 .svn 文件夹。但是导出命令创建的是副本,它不会从现有工作副本中删除 .svn 文件夹。而这正是大多数用户想要的。

但是有些用户确实只想使工作副本取消版本控制。在网上搜索,您可以找到很多用户发布脚本,这些脚本递归扫描路径并删除所有 .svn 文件夹。但是如果您安装了 TortoiseSVN,则不需要这样做。

TortoiseSVN 内置了一个鲜为人知的功能,它可以做到这一点:它会自动删除所有 .svn 文件夹。那么在哪里可以找到这个功能呢?
使用“导出”命令!但是,等等,我不是刚刚告诉过您导出命令会创建工作副本中文件的副本,并且不会更改原始工作副本吗?那么导出命令如何从现有工作副本中删除 .svn 文件夹呢?
很简单:当您右键单击工作副本并从上下文菜单中选择“导出...”时,将显示一个文件夹浏览对话框,您可以在其中选择要将工作副本导出到的文件夹。如果您现在选择与您的工作副本相同的路径作为目标(即,您正在将工作副本导出到自身),TortoiseSVN 将删除该工作副本的所有 .svn 文件夹。

另一种方法是将工作副本右键拖动到自身。但是,资源管理器不允许在同一窗口中将项目拖动到自身,因此您必须使用第二个资源管理器窗口或拖动到树视图上,如下面的动画所示
Unversion