Altium PCB 项目需要哪些文件进行版本控制?

电器工程 altium
2022-01-17 23:14:16

我正在尝试为.gitignore使用 git 进行版本控制并远程存储在 GitHub 上的 Altium 项目创建文件。

我不希望我的队友在每次我进行小更改时都必须不断更新,例如重新运行设计规则检查或重新编译项目。我应该添加到我的版本控制系统的最少文件是多少?

# Ignore the subdirectory where output job outputs are placed
GeneratedOutput

# Ignore autosave files (anything that begins with a tilde)
~*

# What else to ignore?
3个回答

这是我用于在 SVN 中管理 Altium 文件的忽略列表。我确信它们可以转换为 .gitignore 格式(如果甚至需要的话),而不会有太多麻烦:

*/History/*
*.PrjPCBStructure
*.SchDocPreview
*.PcbDocPreview
*\__Previews
*\History
*.PrjPcbStructure
*~$*

请注意,我不同意@KyranF,您不想存档prjpcbstructure文件。每次编译项目时它们都会完全重新生成,而且那里实际上并没有任何东西。它们在功能上只是构建工件,不应提交。

另外,我的屁股被历史记录保存了几次,如果几百 MB 的本地存储有问题,你需要 1. 更大的硬盘驱动器,以及 2. 修复你的优先级,如果几百 MB MB 是一个严肃的考虑因素。

我也强烈反对提交 gerbers。如果您尝试将实际 PCB 规范地链接到一组文件,那么拥有 gerber 可能是必不可少的,尤其是在 gerber 导出和/或处理阶段出现问题时。诚然,您不应该每天都提交 gerber 文件(您也不应该每天都创建它们),但您应该始终提交(并且最好标记)您发布到制造的每组 gerber。


我认为*~$*可能是SolidWorks的临时文件指示器,而不是 Altium。

作为其他答案的补充:

  • 不要版本

    • 显而易见的文件:可能所有生成的输出,如 BOM、报告文件等。
    • .Dat - 作为 BOM 生成的一部分(重新)生成。似乎只包含冗余信息。
    • .TLT - GUI 布局信息。
    • .REP - 泪珠报告文件。
  • 做版本/考虑版本控制

    • 明显的文件:.PcbDoc、.PrjPcb、.SchDoc、.OutJob、.PrjPcbVariants
    • .DsnWrk - 我经常发现,我在一天的工作中打开了几个不相关的 PCB 项目,这会导致工作区文件发生变化。由于这与版本控制无关,我倾向于将其省略。
    • PcbLib、.SchLib、.PvLib - 一个项目可能包含一些项目特定的库。
    • .PrjPcbStructure - 包含有关层次结构的信息。它在编译时(重新)生成。可以进行版本控制,因为当结构发生变化时,无论如何都会有一个提交处于挂起状态。
    • .Annotation - 包含板级组件注释信息。
    • .Harness - 这些文件包含 Harness 定义,并且可能包含无法生成的任意定义。

您想要对 .prjpcb(假设您有一个 PCB 项目!)、.prjpcbstructure、.pcbdoc 和 .schdoc 文件进行版本控制。

其余的,例如历史记录、预览、gerber 输出等都是临时文件,对项目并不重要。

编辑:还要注意“历史”文件的巨大大小,它们可能会变成数百兆字节,因此您应该在项目/Altium 首选项中调整历史大小以使其受到控制,即使整个文件夹被忽略通过子版本文件控制,它仍然会占用您PC上的硬盘空间。