登录/注册

svn pcb

更多

我来用中文详细解释一下如何结合使用 SVN(Subversion) 进行 PCB(印刷电路板) 设计文件的版本控制。这是硬件开发团队常用的协作和管理方法。

核心概念:用 SVN 管理 PCB 项目文件

SVN 是一个集中式版本控制系统,它的核心功能是记录文件每一次的修改历史(谁、何时、修改了什么),允许团队成员协作,并能在必要时回退到之前的任一版本。对于 PCB 设计项目(通常涉及原理图 .SchDoc, .sch,PCB 布局图 .PcbDoc, .kicad_pcb,库文件 .LibPkg, .lib, .kicad_sym, .kicad_mod,工程文件 .PrjPcb, .pro 等),使用 SVN 管理有以下好处:

  1. 版本历史记录: 清晰记录每次设计修改的内容、原因和作者。
  2. 团队协作: 多人可以在同一个项目上工作(虽然需要小心处理二进制文件的合并冲突)。
  3. 版本回退: 如果新设计引入问题,可以轻松恢复到之前任何一个稳定的版本。
  4. 备份: SVN 服务器存储了所有历史版本,相当于一个项目备份。
  5. 基线管理: 可以标记重要的里程碑版本(如 Release v1.0)。
  6. 追溯性: 方便查找某个特定功能或修复是在哪个版本引入的。

如何使用 SVN 管理 PCB 项目:

  1. 创建 SVN 仓库:

    • 在 SVN 服务器上为 PCB 项目创建一个新的仓库。管理员通常负责此操作。
    • 仓库 URL 类似 svn://your.svn.server/path/to/pcb_project_repohttp://your.svn.server/svn/pcb_project_repo
  2. 检出工作副本:

    • 在你的本地工作电脑上安装 SVN 客户端(如 TortoiseSVN - 集成了 Windows 资源管理器,非常常用;或者命令行客户端 svn)。
    • 使用客户端从仓库 URL 检出项目。这会在你本地创建一个文件夹(工作副本),初始包含仓库的最新版本(此时为空)。
  3. 组织项目结构: 在你的本地工作副本文件夹中,按照 PCB 设计工具(如 Altium Designer, KiCad, Eagle, OrCAD/Allegro 等)的要求创建项目文件结构。一个典型的、良好的 SVN 项目结构可能如下:

    /PCB_Project_Repo (SVN 仓库根目录)
        /trunk (主干 - 存放主要的活跃开发分支)
            /ProjectName (你的 PCB 工程项目文件夹)
                ProjectName.PrjPcb (Altium 工程文件)
                /Schematics
                    Main.SchDoc
                    PowerSupply.SchDoc
                /PCB Layouts
                    MainBoard.PcbDoc
                /Libraries (项目专用的库文件可以放这里)
                    ProjectSymbols.SchLib
                    ProjectFootprints.PcbLib
                /Outputs (存放生成的 Gerber, BOM, PDF 等生产文件的目录)
                    /Gerbers
                    /BOMs
                    /PDFs
                /Docs (存放设计文档、规格书、会议记录等)
                .svn (客户端自动创建的隐藏文件夹,存放版本控制信息)
        /branches (分支 - 存放用于实验性开发、Bug 修复或特定功能的分支)
            /Feature_X_Development
            /Bugfix_Issue123
        /tags (标签 - 存放只读的快照,如发布版本)
            /Release_v1.0
            /Release_v1.1
            /PreRelease_Beta
  4. 添加文件到版本控制:

    • 将你需要管理的文件(原理图、PCB 图、库文件、工程文件、重要的设计文档等)放入本地工作副本的正确文件夹。
    • 在 SVN 客户端中(如右键点击文件夹/文件 -> TortoiseSVN -> Add),将这些文件和文件夹添加到 SVN 的版本控制下。此时文件状态变为 添加预定
  5. 提交更改:

    • 在你完成一次有意义的修改(例如,修复了一个 Bug,添加了一个新功能模块)后,需要将本地修改提交到 SVN 仓库。
    • 使用客户端(右键 -> SVN Commit)提交。务必备注清晰、准确的提交信息,例如 “修复了 U3 电源引脚连接错误” 或 “添加了 RS232 接口电路”。这对日后追溯至关重要。
    • 提交后,你的修改成为仓库中的新版本,其他团队成员可以更新他们的工作副本看到这些更改。
  6. 更新工作副本:

    • 在开始工作前或需要合并他人更改时,使用客户端(右键 -> SVN Update)将仓库中其他人的最新修改更新到你的本地工作副本。这可以避免冲突或基于过时版本工作(特别是对于原理图等文本基础的文件,更新能合并更改)。
  7. 处理冲突:

    • 如果多人同时修改了同一个文件的同一区域(在 PCB 设计中,原理图文件有时是文本可合并的,但 PCB 布局文件和大部分库文件是二进制文件),当你提交或更新时可能会发生冲突
    • 特别注意:对于原理图文件: 某些 EDA 工具的原理图文件是基于文本的(如 KiCad),SVN 可以尝试合并文本差异(虽然仍需人工审查)。更新时会提示冲突,需要手动检查合并结果。
    • 特别注意:对于 PCB 布局和库文件: 这些文件几乎总是二进制格式。SVN 无法自动合并二进制文件的冲突。如果两人修改了同一个 PCB 文件并分别提交:
      • 后提交的人会被阻止。
      • 必须先执行 更新 操作。
      • SVN 会将服务器上的最新版本(即别人修改后的版本)下载到本地,并将你的本地修改保存为一个临时文件(如 MainBoard.PcbDoc.mine)。同时你会得到服务器版本(MainBoard.PcbDoc.r最新版本号)和你修改前的基准版本(MainBoard.PcbDoc.r基准版本号)。
      • 你需要手动解决冲突:
        • 使用 PCB 设计软件打开服务器上的最新版本(MainBoard.PcbDoc)。此时它应该包含你的同事的修改。
        • 再打开你修改前的基准版本和你的修改版本(MainBoard.PcbDoc.mine)。比较差异。
        • 手动将你的修改重新实施到最新的服务器版本上(MainBoard.PcbDoc。这是唯一可靠的方法。
        • 解决完成后,标记冲突已解决(右键冲突文件 -> TortoiseSVN -> Resolve)。这会删除临时文件。
        • 然后再次提交这个合并了双方修改的最新文件。
    • 最佳实践:频繁提交小的修改单元,并在修改前更新文件。避免长时间独占文件。
  8. 忽略不需要版本控制的文件:

    • PCB 设计工具会生成很多临时文件、备份文件、日志文件(如 Altium 的 *.PrjPgrHistory 文件夹,*.log*.OutJob 的输出目录下的文件等)。这些文件不应纳入 SVN。
    • 使用 SVN 的忽略列表功能(通常是仓库根目录下的 .svnignore 文件或通过客户端设置)。常见的忽略模式:
      • *.log, *.bak, *.tmp, *.out
      • History/ (Altium 历史文件夹)
      • Project Outputs for */ (Altium 默认输出目录)
      • *.html (Altium BOM 报告等)
      • 工具特定的缓存文件夹。
    • 忽略规则非常重要,能保持仓库整洁高效。
  9. 创建分支和标签:

    • 分支: 当需要开发一个大的新功能、进行风险较高的修改或修复旧版本 Bug 而不影响主线开发时,可以从 主干(trunk)创建一个 分支(branch)。在分支上独立工作,完成后再合并回主干。在 SVN 客户端中通过 复制主干 URL 到 branches 目录下的新路径 -> 提交 来创建分支,然后检出这个新分支进行工作。
    • 标签: 当项目达到一个重要的里程碑(如发布版本、测试版本)时,可以为当前状态创建一个 标签(tag)。标签本质上是仓库某个时刻的快照(通常只读),用于标记特定的版本(如 Release_v1.0)。创建方式与分支类似,但通常放在 /tags 目录下。

重要注意事项:

总结:

svn pcb 的核心就是将 PCB 设计项目的所有重要文件(原理图、PCB、库、工程文件、文档)置于 SVN 的版本控制之下。通过 检出 (Checkout)更新 (Update)提交 (Commit)添加 (Add)忽略 (Ignore)分支 (Branch)标签 (Tag) 和谨慎处理二进制文件冲突这些操作,实现团队协作、历史追踪、版本管理和发布控制。清晰规范的目录结构和详尽的提交信息是高效管理的基石。

如何使用SVN进行LabVIEW代码版本控制呢?

其实我们在安装Visual SVN的时候就指定了代码仓库保存位置。此后只要我们通过Visua SVN管理界面去创建代码仓库,就可以将代码保存在这个指定的路径里。

2023-05-30 09:28:48

为什么Git把SVN拍在了沙滩上?精选资料分享

Git和SVN是大家都比较熟知的版本管理,近几年Git越来越受到大家的喜欢。下面就来分享下关于Git和SVN的内容。Git vs SVN...

2021-07-20 06:49:55

PCB设计与封装指导白皮书合集

资料简介: 本书内容为规定公司所有设计PCB板器件封装的命名与设计规范度,保证公司设计的PCB板器件使用的统一性,便于对所有设计的PCB可靠性进

资料下载 elecfans小能手 2022-09-23 16:00:42

pcb editor

华秋DFM是国内首款免费的PCB设计可制造性分析软件,是面向PCB工程师、硬件工程师、PCB工厂、SMT工厂、

资料下载 佚名 2021-07-28 18:37:48

ad是什么pcb软件

华秋DFM是国内首款免费的PCB设计可制造性分析软件,是面向PCB工程师、硬件工程师、PCB工厂、SMT工厂、

资料下载 佚名 2021-07-28 18:26:49

pcb软件用手来画pcb

华秋DFM是国内首款免费的PCB设计可制造性分析软件,是面向PCB工程师、硬件工程师、PCB工厂、SMT工厂、

资料下载 佚名 2021-07-28 18:25:05

EDA工具CADENCE原理图与PCB设计说明

EDA工具CADENCE原理图与PCB设计说明

资料下载 时涛 2021-07-15 09:38:12

为什么说Git把SVN拍在沙滩上了呢?

Git和SVN是大家都比较熟知的版本管理,近几年Git越来越受到大家的喜欢。   下面就来分享下关于Git和SVN的内容。    Git vs SVN

2021-04-30 11:57:43

如何保存cc2640绑定bond后SVN中的配对信息?

cc2640绑定bond,会保存配对信息在SVN,这个信息是怎么保存的?具体代码是在哪里?

2019-11-11 08:56:28

linux的svn安装方法

准备:本来想自己下载svn的压缩文件,后面想想还是麻烦,所以学着用yum命令

2019-07-19 08:24:08

Linux svn管理工具的12个命令详细讲解

目前,绝大多数开源软件都使用svn作为代码版本管理软件。本文结合实例向大家介绍Linux svn经常使用的12个常用命令。本文从目录命令开始一直到帮助命令,为大家进行了详细的讲解。

2019-07-19 06:16:08

linux svn和checkout的代码迁移

#svn co http://路径(目录或文件的全路径) [本地目录全路径] --username 用户名 --password 密码

2019-07-16 06:11:09

SVN Update问题分析

本节说一下Subversion的子命令SVN Update命令问题,大家应该知道Subversion是一个版本管理软件,了解了Subversion的命令就可以更好的操作 Subversion了。

2019-07-12 08:34:28

linux svn怎么添加用户

1、 找到svn安装路径我的是 /opt/svn/repositories/ (如果不知道,可以搜索 :find / -name svn)

2019-07-05 06:53:56
7天热门专题 换一换
相关标签