1. 拆除“核弹引爆码”?
- 核弹引爆码
是一个有趣的比喻。如果非常隐私数据或其它不应该出现在版本库中的数据(如“核弹引爆码”),不小心提交(检入)到了版本库。如果用版本库自身的删除功能,只是在表面删除而已,该“核弹引爆码”仍然可以通过访问版本库历史而查看到。从安全角度上讲,是不允许的,应该从版本库中彻底删除 ── 历史中也不可见。
Subversion 能够彻底删除“核弹引爆码”,但是普通用户不行,需要管理员进行操作。(这很合理,因为版本库安全性的另一方面,就是数据的绝对安全 ── 一旦提交,历史不可更改)
操作的过程如下:
用 "svnadmin dump" 命令导出版本库到一个文件
用 "svndumpfilter" 命令过滤掉导出文件中的“核弹引爆码”文件
再创建一个新库,用 "svnadmin load" 命令从导出文件重建版本库
删除旧版本库,将新版本库目录改名为原版本库名称
注意:确保新版本库的 UUID 不变,版本库的提交版本的编号顺序也不变,整个操作对版本库的使用者将是透明的。 参见: 管理员命令行参考
2. 一个版本库拆分为多个?多个版本合并为一个?
参见: 管理员命令行参考
3. 版本库从 CVS 到 Subverson 迁移?
参见: cvs2svn 手册