# “No Pristine模式”使用指引
No Pristine模式,开启后将不会保存.svn/pristine到本地工作区,进而可节省50%的本地磁盘占用,且不影响其他SVN功能的使用,相关benchmark详细测试结果如下。
| 操作类型 | 存储占用 | 操作耗时 | 备注 |
|---|---|---|---|
| checkout | ↓50% | ↓10% | 操作文件数量:26w |
| update | ↓50% | ↑5% | 操作文件数量:690 |
| commit | ↓50% | ↓7% | 操作文件数量:690 |
| switch | ↓50% | ↑20% | 操作文件数量:690 |
| revert | ↓50% | ↑15% | 操作文件数量:690 |
# 使用前必读
工作副本升级no pristine模式后,不能回退到有pristine的全量模式,且必须使用“工蜂 TSVN”客户端。如有使用问题可以随时联系 工蜂助手。
# 新建工作副本
# 客户端
checkout 的界面中,勾选“No pristine copies in working copy”即代表no pristine模式。
# 命令行
checkout 命令带上参数 --store-pristine=no 即代表开启no pristine模式。
svn co --store-pristine=no "仓库地址"
checkout 之后,其他 SVN 原生的操作方法/命令与社区版小乌龟一样。
# 存量工作副本升级
对于原社区版小乌龟checkout的工作副本,可以使用工蜂小乌龟(即工蜂TSVN客户端)来升级到no pristine模式,但是升级后无法再回退到有pristine的模式。升级方法如下:
# 命令行升级(推荐)
工蜂TSVN 从 1.15.LAB.GF465 版本开始支持 svn 命令行一键升级。
在存量工作副本的根目录下(子目录可以包含外链),执行命令:
svn upgrade --compatible-version=1.15 --store-pristine=no
说明:
执行升级命令后会立刻进行 pristine 目录清理,如果 svn 工程很大,可能需要较长时间清理,清理过程中请勿操作 svn。
当所有svn目录(包含外链)Upgraded 完成后,升级结束。
# 手工升级
1.在存量工作副本的根目录下(子目录可以包含外链),执行命令:
svn upgrade --compatible-version=1.15
2.把.svn/wc.db 中 settings 表的 store_pristine 改成“0”,如果有外链,需要将每个外链下的.svn/wc.db 都修改一遍。推荐使用 sqlite 修改,执行命令:
sqlite3 .svn/wc.db
UPDATE SETTINGS SET store_pristine=0 WHERE wc_id=1;
3.在工作副本根目录下,执行 svn update,查看 svn info,显示如下信息即表示升级完成。
$ svn info
Working Copy Compatible With Version: 1.15
Working Copy Format: 32
Working Copy store Pristine: no
注意:手工升级完成后,.svn/pristine 目录无需手工清理,在你下次提交时会自动清理 pristine。