2009-09-22 91 views
5

这可能是一个非常简单的问题,但我还没有找到如何删除当前在外部SVN存储库中存在的所有文件。从svn仓库中删除所有文件

我可以使用删除只有一个文件:

svn delete -m "delete README" http://myrepo.com/svn/myrepo/README 

但现在我要删除它们。我想到了一个脚本,它可以获取存储库中所有文件的列表,然后逐个删除它们,但这很枯燥。你知道一个更简单的解决方案吗?

我也试过:

svn rm http://myrepo.com/svn/myrepo 
svn delete http://myrepo.com/svn/myrepo/* 

但没有

感谢

+0

可能欺骗:http://stackoverflow.com/questions/264323/svn-recursive-删除 – 2009-09-22 17:53:45

+0

它不适用于我,因为我无法删除整个存储库。我只对它的内容感兴趣,在删除那里的所有文件 – flow 2009-09-22 18:17:52

回答

25

你可以做一个浅层结账,然后全部删除。

例子:

svn checkout --depth immediates http://myrepo.com/svn/myrepo myworking_copy 
cd myworking_copy 
svn rm * 
svn ci -m "Deleting all" 
+0

+1,简单和作品 – orip 2009-09-22 22:25:48

+1

嗨 这个解决方案看起来很简单,很好。我试过了,但遇到了错误,然后更新到SVN的最后一个版本。然后它认识到--depth选项,但我仍然有这个错误: http://subversion.tigris.org/faq.html#unrecognized-url-error 所以看来我的SVN安装并不好。由于我耗尽时间,我尝试了TortoiseSVN(可悲的只是为了赢得$),浏览了回购并删除了所有文件:) 无论如何我会解决安装svn后 谢谢 – flow 2009-09-23 11:00:21

+0

这个问题可能会派上用场删除包含所有文件的repo目录。 http://stackoverflow.com/questions/9317600/deleting-a-folder-from-svn-repository – 2013-02-01 19:11:01

0

你没有说你是在哪个平台上。

如果您在Windows上并且安装了TortoiseSVN,则可以使用资源管理器搜索文件夹层次结构中的所有文件,标记所有生成的文件,然后使用Tortoise将其删除。

如果您使用的是某些Unix衍生版(包括OSX),则可以在您最喜欢的shell中执行类似操作。

1

在回购您可以svn rm子路径,而不是回购本身。未来,trunk/branches/tags结构可能会更适合您。

要使用一些的bash/zsh,使用魔法将其删除:

REPO=http://myrepo.com/svn/myrepo && svn rm `svn ls $REPO | sed "s/^/$REPO\//"` 

这将扩大到

svn rm http://myrepo.com/svn/myrepo/file_1 http://myrepo.com/svn/myrepo/file_2 ...