摘要:说起版本控制git
,基本大多数都是搞计算机的人在用,嵌入式的也在用,但是还是比较少,只有搞代码编程的人会用一下。其实搞硬件也可以用版本控制。如果你是一名硬件工程师,或者经常画PCB板,建议用一下版本控制SVN。使用之后你就再也不需要在你的本地经常保存压缩各种版本了。
AD支持Subversion(SVN)和Git版本控制系统(VCS)。因为它对这些系统有内部支持,所以它提供了对AD中常见的SVN/Git文件处理命令的访问,例如提交、更新等,以及附加的Subversion功能,例如创建SVN存储库的能力。这与原理图和PCB比较功能集成在一起,可以轻松快速比较和识别原理图或 PCB文档的两个修订版之间的差异,对于PCB设计,使用AD协作功能解决并发修订冲突。
SVN的一些概念
- repository(源代码库):源代码统一存放的地方
- Checkout(提取):当你手上没有源代码的时候,你需要从
repository checkout
一份 - Commit(提交):当你已经修改了代码,你就需要
Commit
到repository
- Update(更新):当你已经
Checkout
了一份源代码,Update
一下你就可以和Repository
上的源代码同步,你手上的代码就会有最新的变更。
一、创建码云仓库
使用版本控制,肯定要创建一个仓库了,我使用的仓库是码云仓库,推荐使用国内的开源仓库。
创建仓库时,在添加.gitignore
要选择SVN
,选择这个文件的目的是这个文件会告诉我们要上传那些文件和不上传那些文件。比如我们如果是对QT进行项目管理这里就可以填写QT,如果是对Python进行项目管理这里就可以填写Python。
这里面的仓库地址可以在个人设置中修改,每个人只可以修改一次。创建好后,我们回到个人主页,点击仓库,就能看见你现在所管理的仓库。然后进入你所创建的仓库后,点击管理,我们需要打开SVN访问
。
现在你就拥有了一个支持SVN的Git网络仓库了。
二、在AD中设置SVN版本控制
打开AD后,点击右上角的设置按钮。我这里使用的是AD18,因为这是在18年安装的最新版,之后就很少画板子了,现在应该是AD21版本了,因为AD公司每年都会发一个新版本。基本上操作流程是一样的。
在弹出的面板中选择:Designer Repositories
。点击Creat New
。创建SVN
接下来的设置很重要。如果设置错了可能连接不上。
- Name:这里填写的是SVN仓库的名字。自定义即可,没有影响。
- Default Checkout Path:默认提取的路径。因为我们的SVN版本控制也是需要文件存储的,所以这里要设置一个空文件夹。放在一个安全的地方就可以,自定义设置,没有多大影响。
- Method:方法。肯定选择是SVN版本控制,其他的没有试过,可以自行尝试。
- Server:服务器。我们使用的是码云,这里要填 gitee.com。
- Server Port:服务器端口。默认即可,当然你也可以指定固定的端口,当然为了防止端口冲突,建议选择默认端口。
- Repository Subfolder:存储器的子文件夹。如仓库的路径是
svn://gitee/用户名/仓库名称
。这里就要填写:/你的用户名/仓库的名称
。 - User Name:gitee的用户名。
- Password:gitee的密码。
之后点击Test。如果出现Connection OK,即可表明连接远程仓库成功。
三、添加到SVN版本控制
将项目及其组成文档添加到版本控制的最直接方法是将完整的项目文件夹添加到 VCS存储库。为此,在工程名上右键—>版本控制—>添加项目文件夹到版本控制系统
。
在添加到版本控制对话框,提供了用于选择目标设计存储库和子文件夹的选项。点击New Folder
按钮以自动创建与源项目文件夹名称匹配的存储库子文件夹。单击ok
以确认设置。
然后对话框将填充来自源文件夹的文件条目,并选中项目的组成文件。
选择Commit
确认选择、请注意,此时工程文件具有Scheduled for addition(+)
。这表明 VCS 已经注册了要添加到版本控制的文件,并且准备好提交到 VCS 存储库中。
在点击Commit
之前工程文件夹和gitee仓库是这样的
在点击Commit
之后工程文件夹和gitee仓库就会变成这样,新增了很多文件。
四、提交一个项目
状态为Scheduled for addition(+)
将在提交时添加到版本控制和设计存储库中。在工程名上右键—>版本控制—>提交整个项目。
随后的“添加到版本控制
”对话框允许取消选择(或选择其他项目)以包含在版本控制下的单个项目文件。还可以添加注释,该注释将包含在即将发布的VCS修订版中。
然后将项目及其构成的设计文档复制到 VCS 存储库并注册为新版本,同时 AD面板中文件的状态更改为No Modification(√)
。表明文件的本地副本与存储库中的文件匹配,并且是最新的。
几种状态说明
最新版AD好像是新增了Git的版本控制,可能是我的AD版本过低没有看到git控制,不过SVN控制已经绰绰有余了。
五、Git与SVN对比
SVN是集中式版本控制系統,版本库是集中放在中央服务器的,而开发人员工作的时候,用的都是自己的电脑所以首先要从中央服务器下载最新的版本,然后开发,开发完后,需要把自己开发的代码提交到中央服务器。
关于Git和SVN,大家可能最疑感的地方,就是不理解,Git的分布式是怎么回事?
在实际的开发或者练习中,我们好像还是会有一个远程的服务器,不管是搭载在Github上,还是我们国内流行的码云上,每次好像也需要从这里拉取代码,提交代码的,这个似乎和SVN是一样的,存在这种疑感很正常,其实不管是我们自己的电脑,还是GitHub、码云的仓库,它最根本的还是台电脑,所以这点和我们本地没有多大的差别,只不过呢,我们毕是团队开发,所以更多的时候,我们还是会弄一个远程的、联网当作的仓库,这样一来,大家把代码提交到这里,准确在git中应该是push到这里,之后找们其他人再去拉去,这样大家会统一的获取一份代码,不需要私下几个人复制代码去传送,这样理解,应该就比较简单了。