SVN通过备份、过滤、再导入的方式彻底删除废弃目录

这篇具有很好参考价值的文章主要介绍了SVN通过备份、过滤、再导入的方式彻底删除废弃目录。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前言

SVN占用的空间随着项目版本迭代越来越大,因为保存了历史记录中的各个版本,所以即使本地把废弃的目录删掉提交,也不会释放出多余的空间,大概率因为操作删除增加了一个版本号,使得占用的空间更大了。

怎么才能让它的空间变小的,最简单粗暴的方式就是丢弃历史记录,在最新的版本中剔除的废弃的目录直接上传创建一个新的仓库,这样操作后所有的人需要重新下载才行,如果想保留历史记录,就要用到今天说的这种备份、过滤、再导入的方式了。

简要步骤

假设svn库A在服务器上的路径是:/data/svndata/repos/A,需要删除的文件路径为 /arts/tmp/pictures,注意要过滤的文件夹路径以 / 开头,其实代指起始目录 A

操作的步骤如下:

//1.备份
svnadmin dump /data/svndata/repos/A > A.dump

//2.过滤掉废弃目录
cat A.dump | svndumpfilter exclude /arts/tmp/pictures > B.dump

//3.创建新的库
svnadmin create /data/svndata/repos/B

//4.导入新库
svnadmin load /data/svndata/repos/B < B.dump

//5.重命名老库
mv A A_backup

//6.重命名新库代替老库
mv B A

操作示例

操作过程使用的是一个真实的SVN仓库,就是按照上面的步骤试了一次,主要想看下是不是传说中的那么耗时,仓库名为R,数据量115G,共10843个版本。

  • 导出备份文件

    # svnadmin dump/data/svndata/repos/R > r.dump
    * Dumped revision 0.
    * Dumped revision 1.
    * Dumped revision 2.
    ...
    

    完整导出用了2小时40分钟,导出文件大小为514G,数据量翻了近5倍。

  • 过滤掉指定目录

    # cat r.dump | svndumpfilter exclude /arts/tmp/pictures > r-exclude.dump
    Excluding prefixes:
       '/arts/tmp/pictures'
    
    Revision 0 committed as 0.
    Revision 1 committed as 1.
    Revision 2 committed as 2.
    Revision 3 committed as 3.
    Revision 4 committed as 4.
    ...
    

    将/arts/tmp/pictures目录过滤掉,总共用时58分钟,过滤后的备份文件大小442G

  • 创建新的临时仓库

    # svnadmin create r-new
    
  • 将过滤后的备份文件导入新库

    # svnadmin load ./r-new < r-exclude.dump 
    <<< Started new transaction, based on original revision 1
         * editing path : arts ... done.
         * editing path : develop ... done.
    
    ------- Committed revision 1 >>>
    
    <<< Started new transaction, based on original revision 2
         * editing path : develop/client ... done.
         * editing path : develop/server ... done.
    
    ------- Committed revision 2 >>>
    ...
    

    导入工作从第一个版本依次应用,总共用时4小时。

这个过程真的是很慢,完整用时近8小时,并且对磁盘空间要求很大,另外还有个接近1万个版本号大小为800G的库,在24核机器上仅导出就花了41小时,备份文件大小4.5T,后面我就没试了,磁盘快满了。

总结

  • 备份 svnadmin dump /data/svndata/repos/A > A.dump
  • 过滤 cat A.dump | svndumpfilter exclude /arts/tmp/pictures > B.dump
  • 建新 svnadmin create /data/svndata/repos/B
  • 导入 svnadmin load /data/svndata/repos/B < B.dump
==>> 反爬链接,请勿点击,原地爆炸,概不负责!<<==

朝气蓬勃的孩子真的可爱,可是我还是想长大,这样才有机会掌控节奏,虽然现在看起来像个提线木偶,但正在尝试突破束缚~文章来源地址https://www.toymoban.com/news/detail-420975.html

到了这里,关于SVN通过备份、过滤、再导入的方式彻底删除废弃目录的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Linux服务器与群晖rsync同步,linux服务器通过rsync的方式备份数据到群晖

    准备需要备份linux服务器的配置,安装rsync即可 1.登录群晖服务器,点击套件中心  2.点击红色框框,跳转到套件界面 3.点击Active Backup for Business 4.点击文件服务器-添加服务器-选择rsync服务器-下一步 5.填写远程服务器信息 6.在群晖系统上创建备份任务 打开群晖的Active Backup fo

    2024年02月10日
    浏览(55)
  • 7、信息打点——资产泄露&CMS识别&Git监控&SVN&DS_Store&备份

    知识点: CMS指纹识别、源码获取方式 习惯配置特征等获取方式 托管资产平台资源搜索监控 直接识别CMS,根据CMS获取网站源码。CMS直接识别工具: 云悉指纹识别平台 。 识别不了CMS,则通过以下方式获取源码: 在网站根目录内(./www/)备份文件,可以访问到;在网站根目录(

    2024年02月01日
    浏览(53)
  • 013-信息打点-Web应用&源码泄漏&开源闭源&指纹识别&GIT&SVN&DS&备份

    0、Web架构资产-平台指纹识别 1、开源-CMS指纹识别源码获取方式 2、闭源-习惯配置特性等获取方式 3、闭源-托管资产平台资源搜索监控 演示案例: ➢后端-开源-指纹识别-源码下载 ➢后端-闭源-配置不当-源码泄漏 ➢后端-方向-资源码云-源码泄漏 标签 名称 地址 指纹识别 在线

    2024年01月21日
    浏览(46)
  • JavaWeb过滤器(Filter)详解,是时候该把过滤器彻底搞懂了(万字说明)

            注意:这篇文章很长,学习完后将会解决你对于过滤器(Filter)的所有疑惑,下面将通过理论和代码的结合来进行讲解演示.....    目录 基本介绍 过滤器原理 过滤器(Filter)接口 使用过滤器(Filter) 创建过滤器(Fliter) 使用过滤器(Filter) 配置过滤器(Filter)拦截路径  注解方式

    2024年02月02日
    浏览(37)
  • 第13天:信息打点-Web应用&源码泄漏&开源闭源&指纹识别&GIT&SVN&DS&备份

    标签 名称 地址 指纹识别 在线 cms 指纹识别 http://whatweb.bugscaner.com/look/ 指纹识别 Wappalyzer https://github.com/AliasIO/wappalyzer 指纹识别 TideFinger 潮汐 http://finger.tidesec.net/ 指纹识别 云悉指纹 https://www.yunsee.cn/ 指纹识别 WhatWeb https://github.com/urbanadventurer/WhatWeb 指纹识别 数字观星 Finger-P

    2024年04月14日
    浏览(42)
  • Day12:信息打点-Web应用&源码泄漏&开源闭源&指纹识别&GIT&SVN&DS&备份

    目录 开源-CMS指纹识别源码获取方式 闭源-习惯配置特性等获取方式 闭源-托管资产平台资源搜索监控 思维导图 章节点 Web:语言 / CMS / 中间件 / 数据库 / 系统 / WAF 等 系统:操作系统 / 端口服务 / 网络环境 / 防火墙等 应用: APP 对象 / API 接口 / 微信小程序 / PC 应用等 架构:

    2024年03月27日
    浏览(51)
  • 【详解|彻底搞懂el-table和列表过滤】vue列表过滤和el-table的实现

    vue列表过滤 el-table的理解 先来看一段代码: chatGPT 的理解真的很6: 这段代码使用了 Element UI 的组件,创建了一个表格列组件 el-table-column,并为它设置了一些属性和插槽。 各种属性: 名称 作用 prop 指定了该列绑定的数据对象的属性名为 warehouseName label 指定了该列的列名为 “

    2024年02月11日
    浏览(44)
  • 彻底删除eslint的方法

    手贱一时误操作点了hbuildx的eslint插件,不仅一堆报错还不能提交git。折腾了半天,总结如下: 运行代码卸载eslint: npm uninstall eslint --save 删除根目录下那两个含有eslint的配置文件 删除package.json里面含有eslint和husky的包和他们的配置信息 【可选】最好搜索全项目

    2024年02月11日
    浏览(33)
  • IntelliJ IDEA彻底删除

    我们在用idea的时候,idea的环境出现了莫名其妙的问题,怎么也找不到问题原因的时候可以试着把idea卸载重新安装。但是如果你卸载的时候没有删除干净注册表里的信息。就算再次安装回来也还是解决不了问题。 如何删除干净IDEA 将所有jetbrains软件关闭退出 1.先卸载软件  

    2024年02月08日
    浏览(42)
  • Anaconda 彻底删除虚拟环境

    Anaconda 彻底删除虚拟环境 当我们要彻底删除在anaconda下创建的某个虚拟环境时,大部分博客提供的方法是: 但是使用这种办法删除某个虚拟环境时,某些情况使用 conda env list 发现仍可以看见该虚拟环境。 通过查找资料发现使用以下命令可以彻底删除虚拟环境。

    2024年02月12日
    浏览(47)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包