取消版本控制的工作副本
许多人在我们的邮件列表中询问如何“取消版本控制的工作副本”、“将工作副本与存储库分离/解除链接”、“从版本控制中删除文件”或类似操作。所有这些问题都导致用户想要删除每个 Subversion 工作副本中隐藏的 .svn 文件夹。
通常,您需要一个“干净的副本”来压缩、归档您的版本控制文件。
Subversion 中用于执行此操作的命令是“导出”。导出工作副本或存储库 URL 将创建所有文件的副本,但不会创建 .svn 文件夹。但是,导出命令会创建副本,不会从现有工作副本中删除 .svn 文件夹。而这正是大多数用户想要的。
但是,一些用户确实想要将工作副本取消版本控制。在网上搜索,您可以找到许多用户发布的脚本,这些脚本递归地扫描路径并删除所有 .svn 文件夹。但是,如果您安装了 TortoiseSVN,则不需要这样做。
TortoiseSVN 内置了一个鲜为人知的功能,可以做到这一点:它会自动删除所有 .svn 文件夹。那么,您在哪里可以找到此功能呢?
使用“导出”命令!但是,我刚才不是告诉您导出命令会创建工作副本中文件的副本,并且不会更改您的原始工作副本吗?那么,导出命令如何从现有工作副本中删除 .svn 文件夹呢?
很简单:当您右键单击工作副本并从上下文菜单中选择“导出...”时,会显示一个文件夹浏览对话框,您可以在其中选择要导出工作副本的目标文件夹。如果您现在选择与工作副本所在的路径相同的路径作为目标(即,您将工作副本导出到自身),TortoiseSVN 将删除该工作副本的所有 .svn 文件夹。
另一种方法是将工作副本右键拖动到自身。但是,资源管理器不允许在同一个窗口中将项目拖动到自身,因此您必须使用第二个资源管理器窗口或拖动到树视图中,如以下动画所示。