电子说
版本控制
无论是个人开发还是多人合作开发,版本控制都是必不可少的。
具体什么是版本控制、为什么要进行版本控制等基本概念,这里先不说了。相关介绍也比较多,需要的可以先搜索了解一下。
SVN(Subversion)是最流行的一个开源软件代码版本控制工具,采用服务器/客户端架构,软件代码存储在服务器上。不同用户通过客户端检出(Checkout)或提交(Commit)代码。
SVN的服务器端和客户端既有命令行形式的,也有图形界面形式的,可以根据需要自行选择。
在LabVIEW里我们可以通过第三方插件使用SVN进行版本控制。
本篇推送我们介绍如何使用Viewpoint TSVN Toolkit对LabVIEW软件代码进行版本控制。
需要的软件
1)Visual SVN
开源、有图形化界面的SVN服务器端。
下载链接:
https://www.visualsvn.com/downloads/
2)Tortoise SVN
开源、图形化界面的SVN客户端。
下载链接:
https://tortoisesvn.net/downloads.html
3)Viewpoint TSVN Toolkit
LabVIEW工具包,提供在项目树、工具栏、菜单项等位置通过Tortoise SVN访问SVN实现版本控制的集成接口。在VIPM中可以下载安装。
软件安装步骤
1)安装Visual SVN
下图黄色区域,选择一下代码仓库(Repository)存放路径;其他都使用默认安装选项。
2)安装Tortoise SVN
安装Tortoise SVN,全部使用默认安装选项。
3)安装Viewpoint TSVN Toolkit工具包
在VIPM中找打Viewpoint TSVN Toolkit工具包,按提示安装。
安装好之后会弹出两个对话框,分别点Yes和Apply,配置一下VI比较(Diff)和合并(Merge)工具。
Viewpoint TSVN Toolkit版本控制实操
1)创建代码仓库
在你安装Visual SVN Server时设置的代码仓库存放路径下创建一个文件夹,用来保存我们要进行版本控制的项目。例如我们在C:Repositories下创建一个MathPlotRepo文件夹。
在MathPlotRepo文件夹上单击鼠标右键,选择TortoiseSVN->Create repository here,会弹出下面这个对话框。拷贝一下标记的地址。
单击OK,创建好的MathPlotRepo文件夹目录结构如下图。
2)导入LabView项目文件
这一步的主要目的是把我们需要进行版本控制的项目导入到SVN中并建立起管控关系。
我们拷贝Math Plots - 2D示例文件夹到桌面上。在文件夹上单击鼠标右键选择SVN Checkout...。URL of repository粘贴上前面复制的MathPlotRepo代码仓库地址。Checkout directory选择Math Plots - 2D根目录。
Tortoise会提示Target folder is not empty,不用管它,继续Checkout。
这个时候Math Plots - 2D文件夹上会有一个标记,表示操作正常、已经与代码仓库版本一致。
注意,我们从MathPlotRepo代码仓库里Checkout时,代码仓库里是没有项目文件(VI等)的,Checkout操作只是建立了Math Plots - 2D文件夹和代码仓库的版本控制“关系”。这种“关系”保存在Math Plots -2D文件夹里的隐藏文件夹.svn里。
所以,打开Math Plots - 2D文件夹,你会发现里面的文件上会有蓝色小问号标记,表示这些文件还没有进行版本控制。
我们也可以打开.lvproj文件,在项目树里可以看见对应的几个文件上也是有问号标记的。
如果在项目树里没有看见问号,请把Viewpoint TSVN Toolkit设置选项里里Icon Overlays相关的几项都勾选上。
我们需要把这些带问号的文件增加到代码仓库中进行版本控制。
方法有两个:
1)在文件夹里单击鼠标右键,选择TortoiseSVN->Add,弹出下面这个对话框,批量把这些文件加入到代码仓库中。
2)在LabView项目树中,右键单击带问号的文件,选择SVN Add。
逐项Add之后,项目树里这些文件图标上会显示一个,表示这些文件已经计划添加到代码仓库中进行版本控制。
在带的文件上单击鼠标右键,选择SVN Commit进行提交操作后,这个文件就被正式加入了代码仓库。
方法2这个操作有点麻烦,还是方法1批量操作更方便些。
方法2适用于在项目过程中渐进地、单个单个地添加文件。
说明:
在LabView项目树里Add文件之后,系统资源管理器文件夹里的文件图标也会跟着变化的。在文件夹里右键选择SVN Commit也可以批量提交。
完成提交之后,LabView项目树里这些文件前面都加上了标记。
3)基本版本控制操作
我们打开Compass Plot.vi做一些修改,例如增加右边图表控件宽度、修改它的标题文字。
提交 Commit
在项目树里可以看见被修改过的文件会有个带红色惊叹号的图标,提醒你该文件已被修改、需要提交。
在文件上单击鼠标右键,选择SVN Commit,在弹出的对话框里输入修改备注后单击OK,这个修改后的文件会被提交到代码仓库并加上自动更新的版本号。
回退 Revert
如果我们不想修改了,但是修改已经被保存到当前VI了(尚未提交),我们可以选择Revert命令,TortoiseSVN会从代码仓库中提取出最近版本的文件。
检出 Checkout
任何可以访问代码仓库(一般放置在服务器上)的用户,都可以在任意位置Checkout出其中的项目。Checkout时,选择HEAD revison可以获得最新的版本;选择Revision并单击右侧的Show Log按钮,可以根据需要选择想要的版本。
更新 Update
其他工程师修改项目文件后,我们只需要右键选择SVN Update就可以将文件更新到最新版本。
小结一下通常操作过程:
1)创建代码仓库。
2)Checkout,添加项目文件,Commit,建立初始版本。
3)Checkout/Update,继续开发,Commit;过程中间可能用到Revert。
SVN自动维护Checkout、Commit、Update操作之间的版本。正常Checkout/Update,再修改,再Commit确认,代码的最新有效版本总是可以从SVN总获得;其它版本也可以从SVN中选择,Commit时的描述也有助于我们区分不同版本。
建议大家试一试,从今天起SVN用起来!
假设A打开Compass Plot.vi进行了修改、提交;接着B打开他在A提交之前Checkout的、保存在本地的Compass Plot.vi,也进行了修改,然后B申请提交修改的文件。这时候会发生什么?
B打开文件后未进行更新,文件已经不是最新状态的了,在提交基于当前旧状态进行的修改时TortoiseSVN会提示无法提交并给出原因。
此时项目树中这个文件前面会有一个黄色三角惊叹号,表示当前文件内容与代码仓库里保存的版本有冲突。
如何解决冲突呢?
SVN还有些什么功能呢?Viewpoint TSVN还有些什么操作呢?
我想这还需要一篇或者多篇推文才能说完。
欢迎大家关注。
审核编辑:汤梓红
全部0条评论
快来发表一下你的评论吧 !