4

我正在将 VSS 存储库迁移到 SVN,并且在第一次签入时无意中包含了所有 _vti_cnf、*.scc 文件。我想从 SVN 中删除这些。(当然不是永久的——只是在 HEAD 中)。有问题的应用程序非常大,逐个文件夹查找和删除这些文件将花费很长时间。

建议?必须有一些明显的方法可以做到这一点,但是周末的临近干扰了我的高级大脑功能。

4

5 回答 5

4

乔纳斯的回答应该很好。也许你会因为你在文件系统级别删除它们而绕过 Subversion 的控制而遇到冲突?

如果您可以使用TortoiseSVN,以下对我有用(=我在上下文菜单中获得了必要的命令):

  • 打开搜索窗口
  • 搜索所有不需要的文件
  • 在列表中选择它们
  • 右键点击
  • 选择“TortoiseSVN”>“删除”
  • 提交更改

完毕!

提供版本控制建议时通常的免责声明,小心,有备份,我不承担任何责任等等等等。

于 2010-04-15T17:06:09.527 回答
3

在 Windows 命令提示符下,您可以使用“for”执行递归文件搜索,并为每个匹配的文件调用“svn delete”,

C:\> for /r %i in (abc*def.sql) do svn delete %i

注意:请记住,在批处理文件中,您需要将 %i 替换为 %%i。

要了解可以与 'for' 一起使用的所有其他标志(它是搜索和解析的瑞士军刀),请使用 help 命令,

C:\> help for
于 2010-04-29T10:48:39.520 回答
2

如果您正在运行 linux 或 Mac OS,则可以使用find,例如

$ find . -type d -name "_vti_cnf" -exec svn delete {} \;

不过,我不再是 SVN 用户(并且从未使用过 VSS),因此您可能需要修改命令行和/或-print先尝试。

于 2010-04-15T17:05:05.787 回答
1

你不能只是 grep (或其他一些查找文件的操作)* .scc 签出版本中的文件,删除它们,然后提交吗?

于 2010-04-15T17:02:33.657 回答
0

或使用 PowerShell:

Foreach ($file in Get-Childitem * -include "*.txt")
{
    svn del $file.name
}

其中 *.txt 是通配符, * 指定要在其中查找要删除的文件的当前目录

于 2012-01-09T00:09:32.977 回答