当前位置: 首页 > news >正文

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
==>> 反爬链接,请勿点击,原地爆炸,概不负责!<<==

朝气蓬勃的孩子真的可爱,可是我还是想长大,这样才有机会掌控节奏,虽然现在看起来像个提线木偶,但正在尝试突破束缚~

相关文章:

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

文章目录 前言简要步骤操作示例总结 前言 SVN占用的空间随着项目版本迭代越来越大&#xff0c;因为保存了历史记录中的各个版本&#xff0c;所以即使本地把废弃的目录删掉提交&#xff0c;也不会释放出多余的空间&#xff0c;大概率因为操作删除增加了一个版本号&#xff0c;使…...

golang支持优雅关闭和core错误记录

#经过测试&#xff0c;不能使用 ENTRYPOINT ["/modapi/modapi", "1>> /dev/null","2>> ./logs/stderr.log"]&#xff0c;原因是虽然这种方案可以 #保证modapi命令为1号程序&#xff0c;能够接收到os的signal信号。但是如果程序core了…...

Basics of Container Isolation 容器隔离的实现原理

目录 容器隔离的实现原理 1. 使用cgroups实现资源隔离 自定义一个cgroup 设置进程的内存使用 启动一个docker 容器&#xff0c;观察cgroup的创建情况 2. 使用Namespaces进行资源分区 namespace继承关系引发的问题 3. 结合来使用Namespaces 和chroot 4. 结论 参考文档…...

EBS R12.1 注册客户化应用的步骤

创建客户化应用目录 登录成 applxxx 用户 -- applxxx 改成所需用户名 # 以标准INV模块作为客户化应用目录的模板 cd $APPL_TOP mkdir -p cust cp -r inv cust/template cd cust # 删除template 目录下的文件&#xff0c;只保留目录结构 cd $APPL_TOP/cust for rm_list in …...

算法记录 | Day38 动态规划

对于动态规划问题&#xff0c;将拆解为如下五步曲 确定dp数组&#xff08;dp table&#xff09;以及下标的含义确定递推公式dp数组如何初始化确定遍历顺序举例推导dp数组 509.斐波那契数 思路&#xff1a; 确定dp数组&#xff08;dp table&#xff09;以及下标的含义&#x…...

PMP项目管理-[第六章]进度管理

进度管理知识体系&#xff1a; 规划进度管理&#xff1a; 定义活动&#xff1a; 排列活动顺序&#xff1a; 估算活动持续时间&#xff1a; 制定进度计划&#xff1a; 6.1 规划进度管理 定义&#xff1a;为规划、编制、管理、执行和控制项目进度而制定政策、程序和文档的过程 作…...

Python变量

一、变量的定义 变量名的命名规范&#xff1a;变量名是标识符的一种&#xff0c;变量名不能随便起&#xff0c;要遵守 Python 标识符命名规范。 ## 常用的命名规范有以下几种&#xff1a; 1. 变量名为单个单词的话全部小写 name "张三" 2. 多个单词组成的话&#…...

准备换工作的看过来~

大家好&#xff0c;最近有不少小伙伴在后台留言&#xff0c;得准备面试了&#xff0c;又不知道从何下手&#xff01;为了帮大家节约时间&#xff0c;特意准备了一份面试相关的资料&#xff0c;内容非常的全面&#xff0c;真的可以好好补一补&#xff0c;希望大家在都能拿到理想…...

免费AI人工智能在线写作伪原创-百度ai自动写文章

免费伪原创洗稿工具 免费伪原创洗稿工具现在终于推出了&#xff01;你是否在写作的时候&#xff0c;经常因为缺乏灵感而苦恼&#xff1f;或者&#xff0c;你在撰写文章的时候&#xff0c;发现自己的语言表述不够丰富&#xff0c;缺乏变化&#xff0c;语句重复率太高&#xff1f…...

互联网摸鱼日报(2023-04-21)

互联网摸鱼日报&#xff08;2023-04-21&#xff09; InfoQ 热门话题 3年不用云能节省4亿美元&#xff01;想知道我们为什么敢不用AWS吗&#xff1f; 华为周红&#xff1a;通过行业大模型促进AI价值创造 建设业务规划、交付和反馈闭环&#xff5c; BizDevOps 公开课 云原生时…...

5.3、web服务器简介HTTP协议

代码地址 5.3、web服务器简介HTTP协议 1.Web-Server&#xff08;网页服务器&#xff09;2.HTTP协议(应用层的协议)①简介②概述③工作原理④HTTP请求报文格式⑤HTTP响应报文格式⑥HTTP请求方法⑦HTTP状态码 1.Web-Server&#xff08;网页服务器&#xff09; 一个 Web Server …...

【观察】华为:新一代楼宇网络,使能绿建智慧化

“碳达峰”、“碳中和”目标是我国生态文明建设和高质量可持续发展的重要战略安排&#xff0c;将推动全社会加速向绿色低碳转型。作为全球既有建筑和每年新建建筑量最大的国家&#xff0c;大力发展绿色建筑对中国全方位迈向低碳社会、实现高质量发展具有重要意义。 《“十四五”…...

【C# .NET】chapter 13 使用多任务改进性能和可扩展性

目录 一、物理内存和虚拟内存使用&#xff08;Recorder 类&#xff09; 二、 对比 string的“”操作与stringbuilder 操作 的处理效率&#xff0c;内存消耗情况&#xff0c; 三、异步运行任务、三种启动任务方法、将上一任务方法处理结果作为参数传给下一任务方法 四、嵌套…...

CA(证书颁发机构)

CA 根证书路径/csk-rootca/csk-ca.pem&#xff1b; ~ 签发数字证书&#xff0c;颁发者信息&#xff1a;(仅包含如下信息) C CN ST China L BeiJing O skills OU Operations Departments CN CSK Global Root CA 1.修改证书的路径以及相关配置 vi /etc/pki/tls/op…...

辛弃疾最有代表性的十首词

辛弃疾的词&#xff0c;风格多样&#xff0c;题材广阔&#xff0c;几乎涉及到生活中的各个方面&#xff0c;从爱国情怀到日常生活&#xff0c;甚至连戒酒这种事都能写入词中。辛弃疾也是两宋词人中&#xff0c;存词最多的作家之一&#xff0c;现存的六百多首作品。 辛弃疾的词…...

MC9S12G128开发板—实现按键发送CAN报文指示小车移动功能

实验环境&#xff1a;MC9S12G128开发板 基本功能&#xff1a;控制开发板上的按键&#xff0c;模拟车辆移动的上下左右四个方位&#xff0c;通过can通信告诉上位机界面&#xff0c;车辆轨迹的移动方位。 1. 1939报文发送的示例代码 MC9S12G128开发板1939协议发送can报文数据的…...

尚融宝22-提交借款申请

目录 一、需求介绍 二、图片上传 &#xff08;一&#xff09;前端页面 &#xff08;二&#xff09;实现图片上传 三、数据字典展示 &#xff08;一&#xff09;后端 &#xff08;二&#xff09;前端 四、表单信息提交 &#xff08;一&#xff09;后端 1、VO对象&…...

机器学习在生态、环境经济学中的实践技术应用及论文写作

近年来&#xff0c;人工智能领域已经取得突破性进展&#xff0c;对经济社会各个领域都产生了重大影响&#xff0c;结合了统计学、数据科学和计算机科学的机器学习是人工智能的主流方向之一&#xff0c;目前也在飞快的融入计量经济学研究。表面上机器学习通常使用大数据&#xf…...

Android硬件通信之 WIFI通信

一&#xff0c;简介 1.1 随着网络的普及和通信技术的发展&#xff0c;网络的传输速度也越来越快&#xff0c;wifi技术也还成为手机设备最基本的配置。我们可以通过wifi实现手机与手机之前的信息传输&#xff0c;当然也可以与任意一台有wifi模块的其它设备传输。 1.2 wifi与蓝…...

面试官:“请描述一下Android系统的启动流程”

作者&#xff1a;OpenGL 前言 什么是Android启动流程呢&#xff1f;其实指的就是我们Android系统从按下电源到显示界面的整个过程。 当我们把手机充好电&#xff0c;按下电源&#xff0c;手机会弹出相应启动界面&#xff0c;在等了一段时间之后&#xff0c;会弹出我们熟悉的主…...

【大模型RAG】拍照搜题技术架构速览:三层管道、两级检索、兜底大模型

摘要 拍照搜题系统采用“三层管道&#xff08;多模态 OCR → 语义检索 → 答案渲染&#xff09;、两级检索&#xff08;倒排 BM25 向量 HNSW&#xff09;并以大语言模型兜底”的整体框架&#xff1a; 多模态 OCR 层 将题目图片经过超分、去噪、倾斜校正后&#xff0c;分别用…...

谷歌浏览器插件

项目中有时候会用到插件 sync-cookie-extension1.0.0&#xff1a;开发环境同步测试 cookie 至 localhost&#xff0c;便于本地请求服务携带 cookie 参考地址&#xff1a;https://juejin.cn/post/7139354571712757767 里面有源码下载下来&#xff0c;加在到扩展即可使用FeHelp…...

手游刚开服就被攻击怎么办?如何防御DDoS?

开服初期是手游最脆弱的阶段&#xff0c;极易成为DDoS攻击的目标。一旦遭遇攻击&#xff0c;可能导致服务器瘫痪、玩家流失&#xff0c;甚至造成巨大经济损失。本文为开发者提供一套简洁有效的应急与防御方案&#xff0c;帮助快速应对并构建长期防护体系。 一、遭遇攻击的紧急应…...

云原生核心技术 (7/12): K8s 核心概念白话解读(上):Pod 和 Deployment 究竟是什么?

大家好&#xff0c;欢迎来到《云原生核心技术》系列的第七篇&#xff01; 在上一篇&#xff0c;我们成功地使用 Minikube 或 kind 在自己的电脑上搭建起了一个迷你但功能完备的 Kubernetes 集群。现在&#xff0c;我们就像一个拥有了一块崭新数字土地的农场主&#xff0c;是时…...

C++_核心编程_多态案例二-制作饮品

#include <iostream> #include <string> using namespace std;/*制作饮品的大致流程为&#xff1a;煮水 - 冲泡 - 倒入杯中 - 加入辅料 利用多态技术实现本案例&#xff0c;提供抽象制作饮品基类&#xff0c;提供子类制作咖啡和茶叶*//*基类*/ class AbstractDr…...

golang循环变量捕获问题​​

在 Go 语言中&#xff0c;当在循环中启动协程&#xff08;goroutine&#xff09;时&#xff0c;如果在协程闭包中直接引用循环变量&#xff0c;可能会遇到一个常见的陷阱 - ​​循环变量捕获问题​​。让我详细解释一下&#xff1a; 问题背景 看这个代码片段&#xff1a; fo…...

多场景 OkHttpClient 管理器 - Android 网络通信解决方案

下面是一个完整的 Android 实现&#xff0c;展示如何创建和管理多个 OkHttpClient 实例&#xff0c;分别用于长连接、普通 HTTP 请求和文件下载场景。 <?xml version"1.0" encoding"utf-8"?> <LinearLayout xmlns:android"http://schemas…...

Auto-Coder使用GPT-4o完成:在用TabPFN这个模型构建一个预测未来3天涨跌的分类任务

通过akshare库&#xff0c;获取股票数据&#xff0c;并生成TabPFN这个模型 可以识别、处理的格式&#xff0c;写一个完整的预处理示例&#xff0c;并构建一个预测未来 3 天股价涨跌的分类任务 用TabPFN这个模型构建一个预测未来 3 天股价涨跌的分类任务&#xff0c;进行预测并输…...

macOS多出来了:Google云端硬盘、YouTube、表格、幻灯片、Gmail、Google文档等应用

文章目录 问题现象问题原因解决办法 问题现象 macOS启动台&#xff08;Launchpad&#xff09;多出来了&#xff1a;Google云端硬盘、YouTube、表格、幻灯片、Gmail、Google文档等应用。 问题原因 很明显&#xff0c;都是Google家的办公全家桶。这些应用并不是通过独立安装的…...

P3 QT项目----记事本(3.8)

3.8 记事本项目总结 项目源码 1.main.cpp #include "widget.h" #include <QApplication> int main(int argc, char *argv[]) {QApplication a(argc, argv);Widget w;w.show();return a.exec(); } 2.widget.cpp #include "widget.h" #include &q…...