从 Subversion 存储库中删除特定文件?

Posted

技术标签:

【中文标题】从 Subversion 存储库中删除特定文件?【英文标题】:Remove a specific file from a Subversion repository? 【发布时间】:2010-11-11 08:02:27 【问题描述】:

我有一个 SVN 存储库,其中包含 Bin 目录中的内容(.exe.dll.pdb)。我想清理存储库以删除这些文件并防止它们回来。

    如何清理存储库(无需逐个文件、逐个目录)? 如何防止添加这些文件? (在 SVNTortoise 中,我向 *.exe *.suo *.pdb /Debug/* 添加了一个全局忽略模式,但它似乎无法正常工作。

【问题讨论】:

这不属于 *** 吗? 【参考方案1】:

您需要删除并忽略这些文件。没有直接的方法可以做到这一点,因为忽略属性不会递归地应用到目录路径中。

确保您已安装 tortoisesvn 签出需要修改的存储库路径到本地文件夹 使用查找工具在本地 svn 副本中查找文件,例如 *.dll 我推荐在total commander中查找,按alt-f7,指定搜索条件,搜索 搜索完成后,按“feed to listbox”

使用 ctrl-a 选择所有文件 右键单击(默认情况下,在总指挥官中,您需要长按右键单击上下文菜单) 选择选项 tortoisesvn -> 删除并忽略列表 -> 按扩展名删除并忽略 xx 项

tortoisesvn mass ignore http://img60.imageshack.us/img60/5207/20090716104211.png

目录也可以这样做

现在你已经实现了:

在每个选定的路径中,您忽略的文件扩展名将被忽略 以后不要提交这些文件,忽略它们

【讨论】:

【参考方案2】:

由于最初的问题实际上是如何清理存储库(并且这样做可能有正当理由:合法或存储库大小爆炸),我想补充一点,可以做到这一点的唯一方法是通过将存储库转储到文件(svn dump),使用“svndumpfilter”过滤内容并将其重新加载到新存储库中:

svndumpfilter explained in the svn book svn obliterate explained on rob gonda's blog

【讨论】:

【参考方案3】:

那些文件不应该在存储库中。只输入构建可执行文件所需的内容(源代码 + 生成文件)。

我建议您将源代码和可执行文件放在不同的目录中,并且只签入源目录中的那些。

对于删除部分,不要打扰。只需创建一个没有这些文件的新修订版。

【讨论】:

以上是关于从 Subversion 存储库中删除特定文件?的主要内容,如果未能解决你的问题,请参考以下文章

subversion如何在存储库中存储文件?

列出具有特定属性和值的 subversion 存储库中的所有路径

如何删除文件夹的Subversion控件?

在 Subversion 存储库中存储文件权限

如何使用 PowerShell 递归删除具有特定名称的文件夹?

如何转换 git 存储库中的大量提交 [重复]