ADMIN_00040_ReposRefector

1. 拆除“核弹引爆码”?

核弹引爆码

是一个有趣的比喻。如果非常隐私数据或其它不应该出现在版本库中的数据(如“核弹引爆码”),不小心提交(检入)到了版本库。如果用版本库自身的删除功能,只是在表面删除而已,该“核弹引爆码”仍然可以通过访问版本库历史而查看到。从安全角度上讲,是不允许的,应该从版本库中彻底删除 ── 历史中也不可见。

Subversion 能够彻底删除“核弹引爆码”,但是普通用户不行,需要管理员进行操作。(这很合理,因为版本库安全性的另一方面,就是数据的绝对安全 ── 一旦提交,历史不可更改)

操作的过程如下:

  • "svnadmin dump" 命令导出版本库到一个文件

  • "svndumpfilter" 命令过滤掉导出文件中的“核弹引爆码”文件

  • 再创建一个新库,用 "svnadmin load" 命令从导出文件重建版本库

  • 删除旧版本库,将新版本库目录改名为原版本库名称

  • (!) 注意:确保新版本库的 UUID 不变,版本库的提交版本的编号顺序也不变,整个操作对版本库的使用者将是透明的。

  • 参见: 管理员命令行参考

2. 一个版本库拆分为多个?多个版本合并为一个?

参见: 管理员命令行参考

3. 版本库从 CVS 到 Subverson 迁移?

参见: cvs2svn 手册