当前位置:  开发笔记 > 运维 > 正文

Subversion Obliterate功能

如何解决《SubversionObliterate功能》经验,为你挑选了2个好方法。

我只是想编写一个shell脚本来以易于实现的方式实现删除功能(外部,使用建议的方式,但是自动化).

这就是我的想法:

在客户端

    svn list -R > file-list.

    过滤文件列表有几种方式,比如grep来创建一个文件"files-to-delete",类似于一组grep XXX file-list>>files-to-delete.

    files-to-delete使用scp 传输到服务器.

在服务器上

    转储存储库svnadmin dump /path/to/repos > repos-dumpfile,这也可以作为备份保存.

    过滤转储文件,对于"要删除的文件"中的每个单词,执行: cat repos-dumpfile | svndumpfilter exclude $file > new-dumpfile

    创建一个新的存储库并将新文件加载到该存储库 svnadmin create new-name; svnadmin load new-name < new-dumpfile

这会有用吗?怎么会失败?还有其他想法吗?



1> Stefan..:

是的,那个脚本可行.但通常你不会删除那么多文件.通常只有在您意外提交机密信息时才需要删除.

你确定要对这么多文件使用删除吗?



2> mark..:

我认为这cat new-dumpfile | svndumpfilter exclude $file > new-dumpfile是一个危险的例子.new-dumpfile将不会被完全处理,它的内容可能会丢失,不是吗?

从下面的评论:new-dumpfile肯定会丢失,因为即使在启动命令之前shell也会破坏它(截断为零长度).


我认为,对于大文件,阅读和同时写入它将无法正常工作.我想即使是小文件,不是吗?"cat file | do_something> file"看起来会覆盖自身,这可能会在完全处理之前发生.依我看.
推荐阅读
勤奋的瞌睡猪_715
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有