'Un-SVN'是一份工作副本

时间:2008-10-08 14:42:33

标签: svn tortoisesvn

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

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

14 个答案:

答案 0 :(得分:47)

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

答案 1 :(得分:32)

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

答案 2 :(得分:23)

如果你使用类似* nix的工具:

find . -type d -name .svn -print0 | xargs -0 rm -fr

答案 3 :(得分:13)

如果您正在使用TortoiseSVN,您只需在工作副本的根文件夹中单击鼠标右键,然后单击导出...即使您有未经修改的更改,这也会有效。

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

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

答案 4 :(得分:4)

您可以手动删除所有.svn文件夹(确保也为每个子文件夹执行此操作)或使用像Jon Gallaway's shell command这样的简单实用程序。

答案 5 :(得分:4)

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

答案 6 :(得分:4)

怎么样:

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

以递归方式删除所有.svn文件夹 -

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

答案 7 :(得分:3)

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

答案 8 :(得分: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

答案 9 :(得分:2)

使用TortoiseSVN,您可以进行右键拖动;删除您的文件夹,然后选择“SVN全部导出到此处”命令。

答案 10 :(得分:2)

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

答案 11 :(得分:2)

使用乌龟出土

当我阅读上述所有建议时,我感到很沮丧,因为我的源文件是3GB,有很多.vn文件夹。

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

答案 12 :(得分:1)

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

据我所知,SVN存储了与该子文件夹中存储库的连接的所有内容(至少在windows中)

答案 13 :(得分:1)

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