# “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

说明:

  1. 执行升级命令后会立刻进行 pristine 目录清理,如果 svn 工程很大,可能需要较长时间清理,清理过程中请勿操作 svn。

  2. 当所有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。

lastUpdate: 9/23/2025, 11:21:37 AM