代码之家  ›  专栏  ›  技术社区  ›  3Dave

用通配符删除SVN?

  •  4
  • 3Dave  · 技术社区  · 14 年前

    我正在将一个vss存储库迁移到svn,无意中在第一次签入时包含了所有的vti-cnf,*.scc文件。我想把这些从SVN中删除。(当然,不是永久的——只是在脑子里)。所讨论的应用程序相当大,查找和删除这些文件需要一个文件夹一个文件夹地进行。

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

    5 回复  |  直到 13 年前
        1
  •  4
  •   Pekka    14 年前

    乔纳斯的回答应该很好。可能是因为在文件系统级别上删除冲突,而绕过subversion的控制而导致冲突?

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

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

    完成!

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

        2
  •  3
  •   Chris Oldwood    14 年前

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

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

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

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

    C:\> help for
    
        3
  •  2
  •   instanceof me    14 年前

    如果你运行的是linux或mac操作系统,你可以使用 find ,像

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

    不过,我不再是svn用户(而且从未使用过vss),因此您可能需要修改命令行和/或尝试使用 -print 第一。

        4
  •  1
  •   Jonas    14 年前

    难道不能在签出的版本中对*.scc文件进行grep(或其他查找文件的操作),删除它们,然后提交吗?

        5
  •  0
  •   ambidexterous    13 年前

    或者使用powershell:

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

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