有没有办法在命令行SVN中使用通配符删除?

rya*_*ogo 5 svn wildcard

tags/我的SVN仓库的目录中,我有类似的东西:

TAG_BUILD_001
TAG_BUILD_002
TAG_BUILD_003
TAG_BUILD_004
...
TAG_BUILD_100
TAG_BUILD_101
...
Run Code Online (Sandbox Code Playgroud)

有没有办法从删除,比方说,一切BUILD_001BUILD_099快?

我试过了:

svn rm https://host/module/tags/TAG_BUILD_0*
Run Code Online (Sandbox Code Playgroud)

但这似乎不起作用,我得到以下错误:

svn: URL 'https://host/module/tags/TAG_BUILD_0*' non-existent in that revision
Run Code Online (Sandbox Code Playgroud)

Dav*_* W. 8

实际上,svn delete确实需要使用通配符,但前提是您正在进行本地删除而不是通过URL.解决方案是检查标签目录,然后删除标签.

现在,通常情况下,这样做需要大量的时间和几千兆字节的空间,因为每个标记都代表整个项目的修订版.如果每个标签的大小为100兆字节,那么您的结帐将为10千兆字节.

但是,该svn co命令现在采用以下--depth参数:

$ svn checkout --depth immediates https://host/module/tags svn-tags
Run Code Online (Sandbox Code Playgroud)

现在,您将检查所有标签,但不会检查其内容.这只需几分钟即可结账,而且几乎没有计算机空间,因为这些都是空目录.现在,您可以使用:

$ cd svn-tags
$ svn rm TAG_BUILD_00*
$ svn commit -m"Removed tags 000 through 099"
Run Code Online (Sandbox Code Playgroud)

而且,最重要的是,它都是在一次修订中完成的.