如何使用SVN进行LabVIEW代码版本控制

电子说

1.2w人已加入

描述

版本控制

无论是个人开发还是多人合作开发,版本控制都是必不可少的。

具体什么是版本控制、为什么要进行版本控制等基本概念,这里先不说了。相关介绍也比较多,需要的可以先搜索了解一下。

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还有些什么操作呢?

我想这还需要一篇或者多篇推文才能说完。

欢迎大家关注。

  审核编辑:汤梓红

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分