参考:
CSDN1:https://blog.csdn.net/u011729865/article/details/78764523
CSDN2:https://blog.csdn.net/wyyother1/article/details/80061952
1、注意一下,我客户端是在 windows 系统下,而 svn 的服务端是在 Linux 系统中。
2、可以来到,我们这边一开始有一个用来测试删除用的文件 和 文件夹: 用来删除用的测试.txt、用来测试删除用的文件夹
3、然后我们通过 移动到回收站(或者 Shift + del 键的彻底删除后)后,提交
4、虽然在最新的版本中,我们看不到上面删除的 文件 / 文件夹。
5、但在前面的版本中,我们还是能看到的。
6、这个时候要彻底删除 svn 服务器 版本库中,所有版本中的这两个文件 / 文件,按下面步骤操作:
(a)、先备份 你要删除的该 svn 版本库,我这里的版本库是 叫 test,可以看到,我这边一共有 7个版本,都已经备份好了,名字叫 a.dump。
svnadmin dump 版本库路径 > 备份后的名字.dump
(b)、然后,因为我们不改变版本库的名称,所以要先把 test 的版本库改变名称,然后,新建一个新的 test 版本库
mv test test11 # 把 test 文件夹 重命名为 test11
mkdir test # 创建名为 test 的文件夹
svnadmin create test # 创建版本库,其实不需要上面的 mkdir test 也可以,因为这条命令已经包含了,新建
rm -rf test/conf #彻底删除新建版本中 conf 的配置,为了保持原本用户权限等信息
cp -r test11/conf test/ # 把原来的 test 版本库 的配置直接复制一份到 新的 test 中。
(c)、过滤掉不要的 文件夹 和 文件
cat a.dump | svndumpfilter exclude 在版本库中的路径 以 / 开头,有多个要过来的,用空格隔开 > test.dump
(d)、然后把备份放回新的同名仓库中。
svnadmin load ./test < test.dump #注意,这边的 < 跟上面的是不一样的。上面的是 >
7、执行完上面的,就重启 svn 服务器。
8、为什么要彻底删除呢整个版本库中的文件,拿 web 前端项目来比如:
1、vue-cli 安装 node 包之后,或多出来一个 node_module 文件夹
2、node_module 下面是所有的 node 包,但其实这个包是不应该上传到 svn 的,因为我们只要拿到它的配置文件 package.json 就能安装好。
3、像我这种穷人,租了个腾讯云只有 40G ,如果那些 node 包都上传上去,动不动就几百M,根本空间不够去玩很多想要玩的编程知识