47

我有一个文件夹是我的工作副本。如何从此文件夹中删除所有 SVN 功能?我这样做是有原因的,不知何故,包含我所有网站工作副本的主文件夹不知何故变成了工作副本本身,所以我本身就有一个工作副本。

那么,有没有一种简单的方法可以从文件夹中删除版本控制?

4

14 回答 14

47

svn export 是您要查找的命令。您可以将一组受控文件导出到非受控位置并使用它。

于 2008-10-08T14:45:32.670 回答
32

只需删除其中的所有“.svn”文件夹即可。就是这样。

于 2008-10-08T14:44:13.297 回答
23

如果您使用 *nix 类工具:

find . -type d -name .svn -print0 | xargs -0 rm -fr
于 2008-10-10T01:19:01.177 回答
13

如果您使用的是 TortoiseSVN,您只需在工作副本的根文件夹中单击鼠标右键,然后单击导出...即使您有未提交的更改也可以。

同样,您可以只从存储库中执行导出,它不会创建任何 .svn 文件夹。

另一种直接的方法是删除所有 .svn 文件夹,如前所述。

于 2008-10-08T14:48:09.657 回答
4

您可以手动删除所有 .svn 文件夹(确保也为每个子文件夹执行此操作)或使用简单的实用程序,例如Jon Gallaway 的 shell 命令

于 2008-10-08T14:44:34.263 回答
4

Windows 客户端“TortoiseSVN”具有“导出”功能。导出在不同文件夹中的其他位置创建一个副本,其中没有所有这些“.svn”文件夹。您可以从存储库或本地副本导出,并可选择包含未版本控制的文件。

于 2008-10-08T14:48:00.903 回答
4

这个怎么样:

for /f "tokens=* delims=" %%i in ('dir /s /b /a:d ".svn"') do rd /s /q "%%i"

递归删除所有 .svn 文件夹——

(如果导出功能不是您的选项 - 无法访问存储库等......)

于 2008-10-08T14:51:48.243 回答
3

TortoiseSVN 能够在没有 subversion 绑定的情况下导出文件 - 右键单击​​存储库(或存储库中的目录),然后是 TortoiseSVN,然后是导出。另一种方法是删除所有文件夹中的所有 .svn 目录。

于 2008-10-08T14:46:39.127 回答
3

这是一个 Windows 批处理脚本,它将从 Subversion 工作副本目录中删除所有 .svn 文件夹:

@echo off
rem cleanup .svn subdirs

setlocal enabledelayedexpansion

rem change to directory that this batch script resides in

if "%~1"=="" (
    echo Usage: svncleanup svn_working_copy_dir
    exit /b 1
)

echo cleaning up .svn subdirs in "%~1" ...

for /R "%~1" %%I in (.svn) do rmdir /Q /S "%%I" > NUL 2>&1
于 2009-07-25T13:57:37.193 回答
2

使用 TortoiseSVN,您可以右键单击拖放文件夹,然后选择“SVN 全部导出到此处”命令。

于 2008-10-08T14:46:29.423 回答
2

我只是使用 Windows 资源管理器搜索“.svn”(从我的工作副本顶部开始),然后选择它找到的所有文件夹并删除它们。

于 2010-04-23T13:53:29.107 回答
2

使用 Tortoise 就地导出

当我阅读上述所有建议时,我感到畏缩,因为我的源文件是 3GB,有许多 .svn 文件夹。

从右键单击上下文菜单中选择导出,当弹出“放置副本的位置”对话框时,选择同一个文件夹本身。好的。Viola 所有的源代码控制都(递归地)立即消失了。

于 2012-05-09T16:16:06.437 回答
1

你不能只删除 .svn 子文件夹吗?

据我所知,SVN 将有关其与存储库的连接的所有内容都存储在此子文件夹中(至少在 Windows 中)

于 2008-10-08T14:45:01.237 回答
1

正如其他人所说,删除 .svn 文件夹将从该文件夹中删除 SVN 功能。如果您递归地执行此操作,您将“取消 SVN”您的整个 WC,这本质上就是 export 命令所做的。我不确定它是 Tortoise、CLI SVN 二进制文件还是两者的功能,但我记得其中一个允许您进行就地导出,这实际上只是从 WC 中删除 .svn 文件夹。正常导出会在未版本化的新位置创建 WC 的副本。

于 2008-10-08T14:50:04.877 回答