SVN使用通配符删除?

时间:2010-04-15 16:56:56

标签: svn visual-sourcesafe version-control-migration

我正在将VSS存储库迁移到SVN,并在第一次签入时无意中包含了所有_vti_cnf,* .scc文件。我想从SVN中删除这些内容。 (当然不是永久性的 - 只是在HEAD中)。有问题的应用程序非常庞大,在逐个文件夹的基础上查找和删除这些文件将需要永远。

连连呢?必须有一些明显的方法来做到这一点,但周末的接近干扰了我的高级脑功能。

5 个答案:

答案 0 :(得分:4)

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

如果您可以使用TortoiseSVN,以下内容适用于我(=我在上下文菜单中获取必要的命令):

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

完成!

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

答案 1 :(得分:3)

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

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

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

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

C:\> help for

答案 2 :(得分:2)

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

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

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

答案 3 :(得分:1)

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

答案 4 :(得分:0)

或使用PowerShell:

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

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