我正在将 VSS 存储库迁移到 SVN,并且在第一次签入时无意中包含了所有 _vti_cnf、*.scc 文件。我想从 SVN 中删除这些。(当然不是永久的——只是在 HEAD 中)。有问题的应用程序非常大,逐个文件夹查找和删除这些文件将花费很长时间。
建议?必须有一些明显的方法可以做到这一点,但是周末的临近干扰了我的高级大脑功能。
我正在将 VSS 存储库迁移到 SVN,并且在第一次签入时无意中包含了所有 _vti_cnf、*.scc 文件。我想从 SVN 中删除这些。(当然不是永久的——只是在 HEAD 中)。有问题的应用程序非常大,逐个文件夹查找和删除这些文件将花费很长时间。
建议?必须有一些明显的方法可以做到这一点,但是周末的临近干扰了我的高级大脑功能。
乔纳斯的回答应该很好。也许你会因为你在文件系统级别删除它们而绕过 Subversion 的控制而遇到冲突?
如果您可以使用TortoiseSVN,以下对我有用(=我在上下文菜单中获得了必要的命令):
完毕!
提供版本控制建议时通常的免责声明,小心,有备份,我不承担任何责任等等等等。
在 Windows 命令提示符下,您可以使用“for”执行递归文件搜索,并为每个匹配的文件调用“svn delete”,
C:\> for /r %i in (abc*def.sql) do svn delete %i
注意:请记住,在批处理文件中,您需要将 %i 替换为 %%i。
要了解可以与 'for' 一起使用的所有其他标志(它是搜索和解析的瑞士军刀),请使用 help 命令,
C:\> help for
如果您正在运行 linux 或 Mac OS,则可以使用find
,例如
$ find . -type d -name "_vti_cnf" -exec svn delete {} \;
不过,我不再是 SVN 用户(并且从未使用过 VSS),因此您可能需要修改命令行和/或-print
先尝试。
你不能只是 grep (或其他一些查找文件的操作)* .scc 签出版本中的文件,删除它们,然后提交吗?
或使用 PowerShell:
Foreach ($file in Get-Childitem * -include "*.txt")
{
svn del $file.name
}
其中 *.txt 是通配符, * 指定要在其中查找要删除的文件的当前目录