硬件项目有哪些好的版本控制系统?Google Code,CVS和SVN是否等效?这样的版本控制系统是否适合涉及PCB文件,原理图(甚至固件代码)的硬件项目?
硬件项目有哪些好的版本控制系统?Google Code,CVS和SVN是否等效?这样的版本控制系统是否适合涉及PCB文件,原理图(甚至固件代码)的硬件项目?
Answers:
基本上,所有VCS系统都可以正常处理文本和二进制文件。当然,您不能合并二进制的。
因此,只要您不使用过时的东西(例如CVS),您就可以使用ANY系统。
我以前曾将Subversion与Altium一起使用。它可以成功运行,但是当时缺少diff工具,因此它的功能不如使用代码进行版本控制。即使没有diff功能,我仍然认为值得这样做。
对于固件,Subversion或Git都很棒。如果您以前没有使用过Git,请先尝试Subversion(即使这样会使以后学习Git更加困难)。
Altium最近推出了一种用于原理图和PCB的差异工具,因此我希望Subversion现在会很棒,以弥补EDA供应商设法在其产品中内置的常见精神错乱。
我一直想用新的diff工具来尝试一下;如果这样做,我会尽量记住在此处发布一个到仓库的链接作为示例。
更新资料
我尝试了一下,不得不说Altium差异工具让我有些不知所措。它是有功能的,但董事会版本之间的变化足够大,以至于至少对我来说没有太大用处。看到这一点后,我决定忘记diff工具,只使用Github。如果您感兴趣的话,这里是回购:https : //github.com/rascalmicro/pcb
svn cp trunk/ tags/releaseX/
拍摄发布的快照。然后,如果要查看版本之间的更改,则可以比较releaseX / file和releaseY / file,或者可以浏览提交日志并查看各个更改。分支有助于模块化大量的提交。
我使用Google Code托管Super OSD(我的电子项目)。
我专门使用gEDA套件来管理原理图和PCB。有用的是,gEDA会为原理图生成文本文件(虽然很难解释它们,但大多数情况下都是人类可读的),而不是像Eagle这样的二进制Blob。例如,这是两个原理图之间的差异,一个是大约5天的历史,另一个是我刚刚推的。它并不是特别有用,因为您实际上看不到文本文件中的太多更改,但是它可以显示相对更改-即大量的返工,而不是单个组件的更改-它确实可以让您回到以前的版本。
为什么不只使用Google Code或SVN存储库?因为这是一个修订控制系统。没有定义的用途。它对于多个开发人员和监视源代码的更改非常有用。
Dropbox不是真正的版本控制系统,但它还可以处理文件修订,使文件可用于不同OS上的不同人员。-穷人版本控制系统;)
上个周末,我在圣马特奥的创客博览会上,遇到了一家新公司(对我而言)Up-Verter的代表。他们基本上是在构建一种电气CAD工具,该工具可在“云”中运行(即在您的浏览器中),并且在概念上围绕协作而构建,因此应处理合并/差异和通常的版本控制工作。
我还没有尝试过,它看起来仍然有点绿色(不要认为您实际上还不能进行pcb布局,只是原理图),但这有点吸引人。他们声称可以导入Eagle文件,这是一个加号。
我还与Element 14帐篷中的Eagle代表进行了交谈,他们表示他们正在转向XML格式,这是朝着使原理图和布局的版本化更加合理的方向迈出了一大步……这方面的所有有趣的进步!
这确实是一个很好的问题。由于FPGA属于“硬件”类别,因此您可能对我为FPGA项目建议的版本控制友好项目结构感兴趣:
http://www.saardrimer.com/fpgaproj/
我认为这些想法和概念很容易适用于其他硬件项目,总的来说。(顺便提一下,对此提案发表评论是很受欢迎的。)
避免git。它不能很好地处理大型存储库。除非您不这样做,否则您的存储库将变大
我只想添加一个指向HgInit的链接,如果您决定走这条路,那么它是Mercurial的精彩介绍。我个人使用Git,但是它们在体系结构方面非常相似(均为分布式版本控制系统)。它们的分布式特性使它们非常适合在“分布式”团队中工作。:)
尽管OpenPLM似乎没有处于积极的开发阶段,但它似乎提供了您正在寻找的某些方面(http://www.openplm.org/trac/discussion/topic/93)。
也许看看https://discuss.erpnext.com/t/erpnext-git-github-for-open-source-hardware-call-for-beta-user-s/18006(“ ERPNext:Git / Github for开源硬件–呼吁Beta版用户”)
对于硬件的任何ascii描述,这都值得考虑。一旦采用了易于理解的硬件描述,任何现代版本控制系统(RCS)都可以很好地工作。电路布局通常由Gerber文件完整描述,UML描述其他部分,这些都是完整的描述。用于原理图,机械布局等的标准ascii格式较少(例如,KiCAD)。
采用是一个更实际的问题,它要求公认的良好修订控制要求,包括有意义的差异。这通常也意味着放弃Word,Excel,PowerPoint等。反对经理和MBA的非常困难的论据,但是可以说,诸如医疗设备,航空和军事等受监管的行业已经需要良好的版本控制。
正如其他人指出的那样,大多数现代RCS都会使用修订控制二进制文件,这对于存档和标识版本非常有用-但是任何电子文档管理系统(EDMS)(例如Agile)都可以将修订号分配给任意二进制文件。无聊
尽管它不是免费的,而且几乎没有错误,但是Altium Vault的工作非常出色。我可以轻松地回滚到任何提交点(就像任何VCS一样)。
在这方面,Altium公司的方式提前溢价(导师和Cadence)工具。
我没有为Altium工作,但是尽管存在当前问题,该工具仍使完整的硬件版本控制非常简单。