0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

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

jf_V8z5L4Nx 来源:传感测控物联网 2023-05-22 10:23 次阅读

版本控制

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

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

SVN(Subversion)是最流行的一个开源软件代码版本控制工具,采用服务器/客户端架构,软件代码存储在服务器上。不同用户通过客户端检出(Checkout)或提交(Commit)代码。

SVN的服务器端和客户端既有命令行形式的,也有图形界面形式的,可以根据需要自行选择。

LabVIEW里我们可以通过第三方插件使用SVN进行版本控制。

本篇推送我们介绍如何使用Viewpoint TSVN Toolkit对LabVIEW软件代码进行版本控制。

需要的软件

1)Visual SVN

开源、有图形化界面的SVN服务器端。

90806d40-f6f6-11ed-90ce-dac502259ad0.png

下载链接:

https://www.visualsvn.com/downloads/

2)Tortoise SVN

开源、图形化界面的SVN客户端。

90915204-f6f6-11ed-90ce-dac502259ad0.png

下载链接:

https://tortoisesvn.net/downloads.html

3)Viewpoint TSVN Toolkit

90b2536e-f6f6-11ed-90ce-dac502259ad0.png

LabVIEW工具包,提供在项目树、工具栏、菜单项等位置通过Tortoise SVN访问SVN实现版本控制的集成接口。在VIPM中可以下载安装。

软件安装步骤

1)安装Visual SVN

下图黄色区域,选择一下代码仓库(Repository)存放路径;其他都使用默认安装选项。

90d44b04-f6f6-11ed-90ce-dac502259ad0.png

2)安装Tortoise SVN

安装Tortoise SVN,全部使用默认安装选项。

3)安装Viewpoint TSVN Toolkit工具包

在VIPM中找打Viewpoint TSVN Toolkit工具包,按提示安装。

安装好之后会弹出两个对话框,分别点Yes和Apply,配置一下VI比较(Diff)和合并(Merge)工具。

90ef0944-f6f6-11ed-90ce-dac502259ad0.jpg9103b0ba-f6f6-11ed-90ce-dac502259ad0.jpg

Viewpoint TSVN Toolkit版本控制实操

1)创建代码仓库

在你安装Visual SVN Server时设置的代码仓库存放路径下创建一个文件夹,用来保存我们要进行版本控制的项目。例如我们在C:Repositories下创建一个MathPlotRepo文件夹。

在MathPlotRepo文件夹上单击鼠标右键,选择TortoiseSVN->Create repository here,会弹出下面这个对话框。拷贝一下标记的地址。

91140514-f6f6-11ed-90ce-dac502259ad0.png

单击OK,创建好的MathPlotRepo文件夹目录结构如下图。

91333d26-f6f6-11ed-90ce-dac502259ad0.png

2)导入LabView项目文件

这一步的主要目的是把我们需要进行版本控制的项目导入到SVN中并建立起管控关系。

我们拷贝Math Plots - 2D示例文件夹到桌面上。在文件夹上单击鼠标右键选择SVN Checkout...。URL of repository粘贴上前面复制的MathPlotRepo代码仓库地址。Checkout directory选择Math Plots - 2D根目录。

913e7c2c-f6f6-11ed-90ce-dac502259ad0.png

Tortoise会提示Target folder is not empty,不用管它,继续Checkout。

这个时候Math Plots - 2D文件夹上会有一个91533f4a-f6f6-11ed-90ce-dac502259ad0.png标记,表示操作正常、已经与代码仓库版本一致。

注意,我们从MathPlotRepo代码仓库里Checkout时,代码仓库里是没有项目文件(VI等)的,Checkout操作只是建立了Math Plots - 2D文件夹和代码仓库的版本控制“关系”。这种“关系”保存在Math Plots -2D文件夹里的隐藏文件夹.svn里。

所以,打开Math Plots - 2D文件夹,你会发现里面的文件上会有蓝色小问号标记,表示这些文件还没有进行版本控制。

91606c42-f6f6-11ed-90ce-dac502259ad0.png

我们也可以打开.lvproj文件,在项目树里可以看见对应的几个文件上也是有问号标记的。

9179e820-f6f6-11ed-90ce-dac502259ad0.png

如果在项目树里没有看见问号,请把Viewpoint TSVN Toolkit设置选项里里Icon Overlays相关的几项都勾选上。

9190fe52-f6f6-11ed-90ce-dac502259ad0.png

我们需要把这些带问号的文件增加到代码仓库中进行版本控制。

方法有两个:

1)在文件夹里单击鼠标右键,选择TortoiseSVN->Add,弹出下面这个对话框,批量把这些文件加入到代码仓库中。

91b10f6c-f6f6-11ed-90ce-dac502259ad0.png

2)在LabView项目树中,右键单击带问号的文件,选择SVN Add。

逐项Add之后,项目树里这些文件图标上会显示一个,表示这些文件已经计划添加到代码仓库中进行版本控制。

91c826fc-f6f6-11ed-90ce-dac502259ad0.png

在带的文件上单击鼠标右键,选择SVN Commit进行提交操作后,这个文件就被正式加入了代码仓库。

91d833e4-f6f6-11ed-90ce-dac502259ad0.png

方法2这个操作有点麻烦,还是方法1批量操作更方便些。

方法2适用于在项目过程中渐进地、单个单个地添加文件。

说明:

在LabView项目树里Add文件之后,系统资源管理器文件夹里的文件图标也会跟着变化的。在文件夹里右键选择SVN Commit也可以批量提交。

91f75940-f6f6-11ed-90ce-dac502259ad0.png

完成提交之后,LabView项目树里这些文件前面都加上了91533f4a-f6f6-11ed-90ce-dac502259ad0.png标记。

9216b862-f6f6-11ed-90ce-dac502259ad0.png

3)基本版本控制操作

我们打开Compass Plot.vi做一些修改,例如增加右边图表控件宽度、修改它的标题文字。

9220544e-f6f6-11ed-90ce-dac502259ad0.png

提交 Commit

在项目树里可以看见被修改过的文件会有个带红色惊叹号的图标,提醒你该文件已被修改、需要提交。

92454452-f6f6-11ed-90ce-dac502259ad0.png

在文件上单击鼠标右键,选择SVN Commit,在弹出的对话框里输入修改备注后单击OK,这个修改后的文件会被提交到代码仓库并加上自动更新的版本号。

9259579e-f6f6-11ed-90ce-dac502259ad0.png

回退 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会提示无法提交并给出原因。

926f89ec-f6f6-11ed-90ce-dac502259ad0.png

此时项目树中这个文件前面会有一个黄色三角惊叹号,表示当前文件内容与代码仓库里保存的版本有冲突。

928cd236-f6f6-11ed-90ce-dac502259ad0.png

如何解决冲突呢?

SVN还有些什么功能呢?Viewpoint TSVN还有些什么操作呢?

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

欢迎大家关注。

审核编辑:汤梓红

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

    关注

    1963

    文章

    3652

    浏览量

    322325
  • 服务器
    +关注

    关注

    12

    文章

    9015

    浏览量

    85169
  • 开源
    +关注

    关注

    3

    文章

    3244

    浏览量

    42381
  • 代码
    +关注

    关注

    30

    文章

    4742

    浏览量

    68330
  • svn
    svn
    +关注

    关注

    0

    文章

    27

    浏览量

    8641

原文标题:如何使用SVN进行LabVIEW代码版本控制

文章出处:【微信号:传感测控物联网,微信公众号:传感测控物联网】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    最新版本LabVIEW NXG,进行更智能的测试

    作为致力于为工程师和科学家提供解决方案来应对全球最严峻的工程挑战的供应商,NI今日宣布推出新版LabVIEW NXG,LabVIEW NXG是LabVIEW工程系统设计软件的下一代版本
    的头像 发表于 02-08 13:43 1.3w次阅读

    kei如何使用svn进行开发

    kei如何使用svn进行开发
    发表于 01-04 10:14

    版本控制

    请问哪位大神知道AD15怎么样进行SVN版本控制
    发表于 04-19 11:29

    Linux svn管理工具的12个命令详细讲解

    目前,绝大多数开源软件都使用svn作为代码版本管理软件。本文结合实例向大家介绍Linux svn经常使用的12个常用命令。本文从目录命令开始一直到帮助命令,为大家
    发表于 07-19 06:16

    如何用LabVIEW找到某一文件夹,当前的SVN版本号(Revision)

    的代表我电脑上该文件夹的Revision,最上面那个代表该文件夹在SVN中最新的版本号,我现在想用程序得到我电脑上本地的Revision。我该怎么选。
    发表于 07-22 10:24

    请教一下大神使用RT-Thread Studio如何进行SVN代码管理呢?

    请教一下大神使用RT-Thread Studio如何进行SVN代码管理呢?
    发表于 01-09 16:41

    SVN服务器建立使用手册

    SVN服务器建立使用手册1.1 SVNSVN全名Subversion,即版本控制系统。SVN 是一个跨平台的软件,支持大多数常见的操作系统。作为一个开源的
    发表于 01-28 16:03 21次下载

    SVN,HG,GIT命令对照

    SVN,HG,GIT是三种常见的版本控制系统,本文简单列出一些相似的操作命令。当然,三种系统各有特点,严格的对应关系是没有的。1,第一次下载,包括源码和版本库:
    发表于 01-13 16:53 0次下载

    基于SVN软件配置管理及持续集成

    SVN是一款广泛使用的配置管理工具,适合中小型软件团队使用。本文叙述了SVN的特点,介绍了配置管理的基本概念和相关角色:详细介绍了基于SVN的软件配置管理和持续集成,主要包括权限管理、SVN
    发表于 11-07 17:50 6次下载
    基于<b class='flag-5'>SVN</b>软件配置管理及持续集成

    Labview进行仪器控制的原因分析

    本文详细介绍了Labview进行仪器控制的原因。
    发表于 11-15 14:15 11次下载
    <b class='flag-5'>Labview</b><b class='flag-5'>进行</b>仪器<b class='flag-5'>控制</b>的原因分析

    关于SVN的例程讲解

    SVN 的一些例程
    的头像 发表于 07-11 00:03 2259次阅读

    为什么说Git把SVN拍在沙滩上了呢?

    Git和SVN是大家都比较熟知的版本管理,近几年Git越来越受到大家的喜欢。   下面就来分享下关于Git和SVN的内容。    Git vs SVN   Git 和
    的头像 发表于 04-30 11:57 1468次阅读
    为什么说Git把<b class='flag-5'>SVN</b>拍在沙滩上了呢?

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

    其实我们在安装Visual SVN的时候就指定了代码仓库保存位置。此后只要我们通过Visua SVN管理界面去创建代码仓库,就可以将代码保存
    的头像 发表于 05-30 09:28 1928次阅读
    如何使用<b class='flag-5'>SVN</b><b class='flag-5'>进行</b><b class='flag-5'>LabVIEW</b><b class='flag-5'>代码</b><b class='flag-5'>版本</b><b class='flag-5'>控制</b>呢?

    Labview开发电梯控制代码

    Labview开发电梯控制代码
    发表于 10-25 18:23 7次下载

    C/c++源代码qt软件 svn版本管理开发如何防泄密?

    现在很多研发团队采用的是c/c++语言,版本管理服务器采用的是svn,开发工具qt软件或vc软件,或是matlab等开发工具,对于这种环境,安秉网盾有完善的防泄密方案,支持各种研发环境。员工
    的头像 发表于 12-05 10:35 396次阅读
    C/c++源<b class='flag-5'>代码</b>qt软件 <b class='flag-5'>svn</b><b class='flag-5'>版本</b>管理开发如何防泄密?