为了解决每次对PCB工程进行修改时不能回溯的问题,以及为日后团队协作完成某项工程提供方便,所以我研究了一下如何在AD中实现版本控制。

所幸的是,AD本身自带VCS功能(Version Control System),并支持SVN和Git两种VCS方式

前提条件:

安装Git的桌面版本,如Github Desktop

安装Altium Designer 20(目前已知16以后的版本都可以支持VCS功能,但16的使用遇到了一些问题)

在Github上建立Repository

在Github上建立Project相应的Repository,先不要勾选生成README.md,这里以我的项目LLRF为例

之后在GitHub的桌面客户端上选择将LLRF这个库Clone到电脑的指定路径

添加已有的项目到LLRF中

如果已经有项目在电脑上了,可以将项目相关的文件移到本地仓库所在的文件夹,然后Commit一下,并push上去,也就是点击上方的Publish branch

至此,Project里面的内容就已经被push到GitHub对应的库中了

在Altium Designer中设置

在AD中导入GitHub上的库有两种方式,接下来一一介绍

直接导入

如果像之前已经把Project的相关文件导入到GitHub的库中,并且本地库和远程库已经同步完成,那么直接打开本地的Project即可,这时会看到Project中的文件右侧会有一个绿色的✔,即表示该文件已经同步到远程库了

接着,我们可以尝试对Project中的文件做修改,如加入一些自己的libraries,可以看到,新加入的libraries边上是没有标记的,个人经验,libraries本身也是不支持push的

我们保存一下Project,然后在文件列表中右键——Version Control——Commit Whole Project,并添加相应的Comment,然后点击Commit and Push即可

注意下面这种图中Project对应的PrjPcb这个文件边上有一个红色的⭕,这表示该文件已经被modified了,但是还没有commit和push

第一次Commit时,可能会要求输入GitHub的账号密码,正常输入即可

Push完成后,再去观察Projects列表就会发现,文件边上的标志又都变成了✔,同时打开桌面版的GitHub会发现,相应的Commit已经被Push成功了

值得一提的是,Altium Designer自带的VCS功能是能够和Git打通的,这也就省去了每次在AD中修改完还需要手动到Git中再Commit一次的步骤,直接在AD中Commit and Push即可。

在Altium Designer内clone

第二种方式是在Altium Designer中clone Git上的库到本地。首先,在AD界面的右上角点击⚙图标,打开Preference——Data Management——Design Repository——Connect to/Creat New——SVN,弹出如下界面,按照以下规则填写:

Method——如果使用的是GitHub,选择https,不同的情况不一样,主要看支持哪种,像码云就可以选择svn(svn是在Git之前就出现了的VCS工具,是一种商业软件,目前很多基于Git的公共库也支持svn,比如码云、GitHub等)

Server——git@github.com(如果使用了其他Git仓库就填写相应的域名,如国内的码云http://Gitee.com)

Server Port——保持Default不动

Repository Subfolder——填写/GitHub用户名/库名

User Name&Password——填写GitHub的用户名和密码

填写完以后可以点击Test按钮查看是不是能够ping通相应的Server,如果可以会弹出"Connection OK",但是注意这里只是说明能够连接Git所在的服务器(这里就是GitHub的服务器),不代表一定能读写相应的库

最后点击OK添加,然后返回AD的主界面,点击左上角的File——Check out,就可以看到如下的界面,选择trunk点击OK,就会出现Check out的进度表,如果使用的是GitHub可能要等一会。

Note:trunk和branches这两个文件夹值得注意。如果是想通过先添加Design Repository,然后将本地的Project添加到Design Repository中的方式来实现VCS的话(即添加库——projects列表文件右键选择Version Control——Add ....),本地的Project的所有文件需要放在Default Checkout Path的trunk或是branches文件夹下面,也就是本地版本的这两个文件夹。造成这种操作的原因可能是svn和Git的逻辑差异——Git的Commit是要Push到master分支下的,而svn的Commit则是要Push到trunk或branches下的。

个人经验来讲,第二种办法相对要麻烦一些,因为svn和GitHub的逻辑差异,导致pull下来的Project往往被放在trunk文件夹下面,容易弄得很乱。

One more way

之前说到是介绍两种方法,但实际上还有第三种,这在第二种方法的Note中也提到了,即先建立一个Design Repository然后将本地的Project add到Version Control并Commit and Push上去,这种方法就不详细介绍了,主要是有可能造成很多不必要的问题

总体来讲,最推荐的还是在GitHub上创建库——通过Git GUI软件(如GitHub Desktop)将库Clone到本地——将Project建在或移植到本地库——Commit and Push,这种步骤相对比较流畅,而且除了点点鼠标也不需要太多功夫。

Think more

在搜索相关教程时,我发现,硬件工程师普遍还是用svn来做版本控制,一个现实原因是Altium Designer对于Git的支持确实很迷,官网的document上明明写了支持像使用svn一样使用Git,但还是会出现各种问题。也难怪一位外国老哥说到:stop thinking like a programmer guy, just use svn!毕竟Git在PCB版本控制上相比svn没有硬核的技术优势,支持程度还这么差...

但个人认为,使用Git来配合AD还是有其相应的优点的,毕竟svn使用人数相对较少,且商业化程度要高一些,所以价格也要贵一些,虽然可以自建svn server,但是成本还是不低的,还要实时担心server会崩掉。

最后讲一下AD版本控制的小优势:

  1. 可以随时溯源过去做的修改
  2. 方便团队协作,需要传输Project时,只要从公共的远程库Pull一下即可,避免来回传递zip压缩包
  3. AD对版本控制有很好的支持,可以直接对比不同版本之间的原理图和PCB的具体区别

参考资料

记PCB 版本控制 (amobbs.com 阿莫电子论坛)​www.amobbs.com[简单易学]使用Altium Designer的版本控制功能​blog.csdn.net

Data Management - Design Repositories​www.altium.com

Git教程​www.liaoxuefeng.com

Version Control and Design Repositories​www.altium.com

git保存账号密码_Altium Designer 通过Git实现版本控制相关推荐

  1. GIT修改账号密码重新登录和保存密码

    如果将git的账号密码修改了,本地的账号密码就失效了,这个时候如果再登录的话,就会提示: Access Deny 那么本地要如何更新账号密码,重新登录呢? 1.git在修改密码之后,再次的进行git操 ...

  2. 搜狗浏览器怎么保存账号密码 搜狗浏览器保存账号密码教程

    搜狗浏览器是一款非常安全的电脑浏览器.该软件能够对用户密码有安全保障,下面小编就为您带来搜狗浏览器保存账号密码教程. 搜狗浏览器怎么保存账号密码 搜狗浏览器保存账号密码教程 搜狗浏览器怎么保存账号密码 ...

  3. linux的xshell怎么保存密码,Xshell保存账号密码方法

    Xshell安全的终端模拟器,用户可以轻松安全的从Windows PC上访问主机.经常使用xshell用户就会知道账号.密码是特别重要的东西,虽然xshell是可以自动登录的,但是在这个之前我们至少要 ...

  4. git永久保存账号密码

    在git bash 中执行命令: git config --global credential.helper store 在输入一次账号密码就可以永久保存了,免去git重复输入账号密码操作

  5. 保存git登录账号密码

    2019独角兽企业重金招聘Python工程师标准>>> 先在控制台输入git的命令 git config --global credential.helper store 使用git ...

  6. linux系统 git修改账号密码

    在服务端执行 vi ~/.git-credentials,可以看到被保存的账号密码,删掉或者修改都可以了! eg:http://账号:密码@git仓库http地址 其他: 使用git --versio ...

  7. Eclipse中使用git前账号密码等的配置问题

    在Eclipse中使用git,为了方便,需要提前进行一定的设置. 1.账号密码的设置 在菜单中选择 Windows–>Preferences,在弹出的对话框中设置账号密码. key: name ...

  8. Github新安全措施:停止Git客户端账号密码登录的解决方案

    太长不看:你以前怎么登录,现在就怎么登录,你以前怎么改密码,现在就怎么改,只不过要把用户名换成oauth2,密码换成你的令牌. 今年 8 月 13 日之后,如果你还用账户密码来操作 Github 上的 ...

  9. git 记住账号密码和清除账号密码

    git 默认不记住账号密码,每次 clone 都要输入账号密码: 记住账号密码: 我们执行下面的命令 git config --global credential.helper store 这个命令其 ...

最新文章

  1. jquery.form 和MVC4做无刷新上传DEMO
  2. Springmvc ajax请求400
  3. php下webservice使用总结
  4. lua学习笔记之闭包
  5. android 发送邮件
  6. 深度神经网络模型压缩方法总结
  7. Gitee 使用问题记录
  8. boost::program_options模块一个配置ini文件被解析程序选项库,它包括许多不同的值类型的测试程序
  9. 洛谷P1659 养猪
  10. LightOJ1298 One Theorem, One Year(DP + 欧拉函数性质)
  11. 利用光学流跟踪关键点---30
  12. 动态滤波网络论文解读
  13. 谷歌推Android 8.1开发者预览版,Pixel 2神秘芯片终于派上用场了
  14. 如何开启/关闭Pages文稿上的字数统计功能?
  15. 设计佣金问题的java程序_三角形、nextday、佣金问题实验报告.doc
  16. opencv中关于cvtColor函数性能测试
  17. python连连看_Python-连连看
  18. 又一次算法作业hhhhhh
  19. JZOJ ???? dexterity
  20. Vue - 根据输入关键字过滤数组列表(列表搜索功能)

热门文章

  1. 怎么判断一个字符串的最长回文子串是否在头尾_最长回文字串/子序列问题(leetcode5,9,519)
  2. postgresql修炼之道_PostgreSQL的TOAST技术
  3. PPT将图片变为平行四边形形状
  4. 吴恩达《机器学习》学习笔记五——逻辑回归
  5. Guava入门~Charsets
  6. Process 执行shell 脚本
  7. android底层设置相机帧率,Android Camera previewFrame 提高 fps
  8. php 获取两个日期相隔几周,怎么样计算2个日期之间相差几周
  9. mysql3.51 密码修改_mysql修改密码
  10. mysql 增大数据库链接_怎么增大MYSQL数据库连接数