你如何删除一个文件夹的Subversion控件?

我有一个文件夹c:\websites\test ,它包含从不再存在的存储库检出的文件夹和文件。 我如何让Subversion停止跟踪该文件夹和任何子文件夹和文件?

我知道我可以简单地删除.svn文件夹,但是在许多图层中有很多子文件夹。

此外,如果您使用TortoiseSVN,只需导出到当前的工作副本位置,它将删除.svn文件夹和文件。

http://tortoisesvn.net/docs/release/TortoiseSVN_en/tsvn-dug-export.html#tsvn-dug-export-unversion

更新了Subversion 1.7的答案:
在Subversion 1.7中,工作副本已被广泛地修改。 只有一个.svn文件夹位于工作副本的底部。 如果您使用的是1.7,那么只需删除.svn文件夹及其内容是一个简单的解决scheme(无论使用TortoiseSVN还是命令行工具)。

在Linux上,这将工作:

  find . -iname ".svn" -print0 | xargs -0 rm -r 

试试svn导出 。

你应该可以做这样的事情:

 svn export /path/to/old/working/copy /path/to/plain/code 

然后删除旧的工作副本。

TortoiseSVN也有一个导出function ,performance方式相同。

如果您正在运行Windows,那么您可以search该文件夹中的.svn文件,并将其列出。 按Ctrl + A将select所有这些,按删除将删除所有'麻烦'的Subversion的东西。

我发现你甚至不需要复制到临时位置。 你可以做一个

 svn export --force . 

并且.svn文件将被原位删除,而其他文件保持不变。 非常方便,不容易混乱。

在Linux上,命令是:

 svn delete --keep-local file_name 

在Linux中没有子shell来删除.svn文件夹:

 find . -name .svn -exec rm -r -f {} + rm = remove -r = recursive (folders) -f = force, avoids a lot of "a your sure you want to delete file XY". 

这些答案都不符合我的情况。 我在颠覆1.8,我有一个工作副本,只有一个单一的.svn文件夹在第一个文件夹,根。 但是,我想从工作副本中删除一些分支。

无论我做了什么,每当我运行“更新”时,都会恢复这些文件,并将它们全部带回。 我不想从存储库中删除它们,只是从我的电脑中删除它们,但是我需要保留工作副本的其余部分(因此不能删除.svn文件夹)。

解? svn update --set-depth exclude <dir>

这是一个排除特定目录的客户端“更新”。 它可以在svnbook.com的手册中find 。 总之,它描述为:

从Subversion 1.6开始,你可以采取不同的方法。 首先,检查完整的目录。 然后在你不关心的一个子目录上运行svn update –set-depth exclude。

对于TortoiseSVN,您还可以通过右键单击不需要的文件夹来执行相同操作,单击Update to revision... ,然后将“更新深度”设置为“ Exclude ,如下面的屏幕截图所示:

在这里输入图像描述

它对我来说很好:

 find directory_to_delete/ -type d -name '*.svn' | xargs rm -rf 

使用svn export命令:

 cd c:\websites\test svn export c:\websites\test_copy 

版本控制下的所有文件都将被导出。 仔细检查,确保你没有遗漏任何东西。

只需删除所需文件夹中的.svn文件夹,然后控件将被自动删除。

在Windows上,你可以添加一个快速链接到你的资源pipe理器右键菜单。 只需启动这个registry脚本:

 Windows Registry Editor Version 5.00 [HKEY_CLASSES_ROOT\Folder\shell\DeleteSVN] @="Delete SVN Folders" [HKEY_CLASSES_ROOT\Folder\shell\DeleteSVN\command] @="cmd.exe /c \"TITLE Removing SVN Folders in %1 && COLOR 9A && FOR /r \"%1\" %%f IN (.svn) DO RD /s /q \"%%f\" \"" 

这会在右键菜单中添加一个名为“删除SVN文件夹”的项目。 这将删除此文件夹和所有子文件夹中的所有.svn文件夹。

来源(德文): http : //www.sjmp.de/software/alle-svn-ordner-und-dateien-loeschen/

您可以使用“svn export”来创build该文件夹的副本,而无需svn数据,或者您可以添加该文件夹以忽略列表

对于那些使用SVN的NetBeans,有一个选项“Subversion> Export”。

还有一个很好的小开源工具叫SVN Cleaner ,它在Windows资源pipe理器上下文菜单中增加了三个选项:

  • 删除所有.svn
  • 删除所有,但根.svn
  • 删除本地回购文件

在Windows 7上,可以打开项目文件夹,如果启用了隐藏文件,则search“.svn”,并删除所有find的.svn文件夹。

最好,最简单的方法

如果你认为你可以赢得一个简单的魔法命令,你是失败的! SVN是非常棘手的,总是以某种方式返回Xcode中的新错误消息。 迟早,承诺…所以你必须做到这一点聪明!

如您所知,Xcode下的常规和最佳做法是删除左侧项目窗格上的文件。 如果你错过了,并在Finder中删除它,你有麻烦。 大麻烦! 但是如果你做得好的话,你可以解决这个问题。

首先,您需要删除对文件或文件夹的SVN引用,然后才能真正删除它

  1. 如果你可以把垃圾桶里的文件/文件夹放回去,或者删除最后一步,那么…

  2. 去terminal – 是的,好老的terminal – 去那个地方。 最好的方法只需键入cd然后将文件夹/文件拖到terminal。 你会得到类似的东西

CD /用户/用户名/文件/ Apps_Developing / …

你可以检查你在哪里

LS

命令列出你的文件。

  1. 那么你需要用SVN命令删除svn引用:

    svn delete –keep-local fileName_toDelete

这将从SVN仓库中删除文件,但是你必须在Finder中手动删除它。

答案非常简单 – 将文件夹导出到自己 ! TortoiseSVN检测到这个特殊情况,并询问是否要使工作副本未版本化。 如果你回答是,控制目录将被删除,你将有一个普通的,未版本化的目录树。

另一个(更简单的)Linux解决scheme:

 rm -r `find /path/to/foo -name .svn` 

svn export工作正常,但我认为这是:

 svn rm --keep-local <folder/file> 

它将其从本地存储库中删除。

这个命令适用于我:

找 。 -iname“.svn”-print0 | xargs -0 rm -r

我使用rsync:

 # copy folder src to srcStripped excluding subfolders named '.svn'. retain dates, verbose output rsync -av --exclude .svn src srcStripped 

NetBeans IDE用户可以这样做:

  1. 在您的IDE中打开SVN项目
  2. select项目

    右键点击Subversion Export

  3. 在对话框中

    导出到文件夹/ var / tmp / projectname按导出等待将显示完成将询问你要打开它在飞行中打开

  4. 你现在可以切换到Git 🙂

我的想法是删除.svn文件夹,然后将所有其他文件移动到一个新的文件夹。 它是如此简单。

当您使用Windows操作系统时,转到您的文件夹位置,并检查隐藏的文件是否打开,然后您可以在那里看到SVN文件夹。 只要删除该文件夹。

作为一个关键点,当您使用shell删除.svn文件夹时,您需要使用-depth参数来防止find命令进入刚删除的目录,并显示如eg

“find:./.svn:没有这样的文件或目录”

因此,您可以使用如下所示的find命令:

 cd [dir_to_delete_svn_folders] find . -depth -name .svn -exec rm -fr {} \; 

在Windows 10上,我们需要转到Windows Explorer ,然后转到“ View并选中“ View hidden files ”checkbox。

然后导航到在Windows资源pipe理器中链接了SVN的文件夹,并删除.svn文件夹/文件。