打造个人 Cadence PCB 元件库版本管理:SVN 服务器搭建与 TortoiseSVN 实战
前言
在 PCB 设计工作中,随着项目积累,元件封装库、原理图符号库的管理会变得越来越困难。多人协作时版本混乱、文件覆盖、历史追溯困难等问题层出不穷。本文将介绍如何在 Linux 服务器上搭建 Subversion(SVN)版本管理服务器,统一管理 Cadence Allegro/OrCAD 元件库,并配合 Windows 端的 TortoiseSVN 实现便捷的版本控制。
为什么选 SVN 而不是 Git?
对于 PCB 设计库这种以二进制文件为主的场景,SVN 有几个天然优势:
- 文件锁机制:二进制文件(.dra、.psm、.OLB)无法合并,SVN 的悲观锁可以防止多人同时编辑同一个封装,确保数据一致性。
- 目录级别权限控制:可以对 Allegro 封装库、OrCAD 原理图库、IBIS 仿真模型等不同目录设置不同访问权限。
- TortoiseSVN 集成:Windows 资源管理器右键集成,设计师无需离开工作环境即可完成提交、更新操作。
- 轻量级服务端:svnserve 进程资源占用极低,适合部署在家用服务器上。
服务器环境
- 操作系统:Ubuntu 26.04 LTS
- 服务器:华为 RH2288 V3
- Subversion:1.14.5
- 网络:内网 10.10.10.42,外网通过域名可访问
安装 Subversion
apt-get install -y subversion
安装完成后验证版本:
svnserve --version
创建仓库
在 /opt/svn 目录下创建版本库:
mkdir -p /opt/svn
svnadmin create /opt/svn/cadence-lib
SVN 仓库文件本身只需要 128 MB 空间(含 8400+ 个 PCB 封装和原理图符号),非常节省存储。
配置用户认证
编辑仓库配置目录下的 svnserve.conf:
[general]
anon-access = none # 禁止匿名访问
auth-access = write # 认证用户可读写
password-db = passwd # 密码文件
authz-db = authz # 权限文件
realm = Cadence Lib Repository
设定用户密码(passwd 文件):
[users]
xiaoajun = 123456
gaoyang = 123456
权限文件(authz):
[/]
* = rw
配置 systemd 服务
创建 /etc/systemd/system/svnserve.service 确保服务器重启后自动运行:
[Unit]
Description=Subversion server
After=network.target
[Service]
Type=forking
ExecStart=/usr/bin/svnserve -d -r /opt/svn --log-file /var/log/svnserve.log
Restart=on-failure
[Install]
WantedBy=multi-user.target
启动服务并开放防火墙端口:
systemctl enable --now svnserve
ufw allow 3690/tcp
导入现有库文件
将本地 Cadence 元件库导入到 SVN 仓库:
cd /path/to/your/lib
svn import . file:///opt/svn/cadence-lib -m "Initial import: Cadence PCB library"
本次导入了 8485 个文件,包括:
- Allegro/:3069 个 .dra 封装、2759 个 .psm 符号、2184 个 .pad 焊盘
- Orcad/:24 个 .OLB 原理图符号库
- IBIS/:信号完整性仿真模型
- 板框/:常用 PCB 板型 DXF 图纸
Windows 端使用 TortoiseSVN
Checkout(首次检出)
- 在目标文件夹右键 → SVN Checkout
- URL 填入:
svn://10.10.10.42/cadence-lib(外网用域名) - 输入用户密码,点 OK 即可检出
Daily 工作流
| 操作 | 右键菜单 | 说明 |
| 获取最新版本 | SVN Update | 打开 Cadence 前先更新,确保用最新库 |
| 锁定文件 | SVN → Get Lock | 修改封装前先锁定,防止他人同时编辑 |
| 提交修改 | SVN Commit | 提交时写清修改内容,方便追溯 |
| 查看历史 | SVN → Show Log | 查看封装修改记录和版本对比 |
Cadence 环境配置
在 Cadence 中配置共用库路径,确保 Allegro 和 OrCAD 都能直接加载 SVN 管理的库文件:
- Allegro:Setup → User Preferences → Paths → Library,添加 padpath 和 psmpath
- OrCAD Capture CIS:Options → CIS Configuration,配置数据库指向 SVN 工作副本
总结
通过 SVN 服务器 + TortoiseSVN 的组合,PCB 设计库的管理变得井井有条:
- 每次修改都有完整的历史记录,出了问题随时回滚
- 文件锁机制确保二进制封装文件不会冲突
- 多台电脑共享同一套库,新增封装自动同步到所有设计师
- 服务器端 24 小时运行,外网也能访问
整个方案成本为零(开源软件 + 自有服务器),却解决了 PCB 设计中最棘手的版本管理问题。