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
    +关注

    关注

    1918

    文章

    3619

    浏览量

    316983
  • 服务器
    +关注

    关注

    12

    文章

    8115

    浏览量

    82499
  • 开源
    +关注

    关注

    3

    文章

    2985

    浏览量

    41716
  • 代码
    +关注

    关注

    30

    文章

    4555

    浏览量

    66750
  • svn
    svn
    +关注

    关注

    0

    文章

    25

    浏览量

    8564

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

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

收藏 人收藏

    评论

    相关推荐

    kei如何使用svn进行开发

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

    版本控制

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

    altium designer 9 的版本控制问题

    工程添加了版本控制后,在存储管理器中并没显示出SVN版本的管理,仍然只有本地历史,如下图:而我看教程应该是这样的:也就是应该有个版本管理的历
    发表于 06-23 14:56

    linux svn和checkout的代码迁移

    #svn co http://路径(目录或文件的全路径) [本地目录全路径] --username 用户名 --password 密码
    发表于 07-16 06:11

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

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

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

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

    为什么Git把SVN拍在了沙滩上?精选资料分享

    Git和SVN是大家都比较熟知的版本管理,近几年Git越来越受到大家的喜欢。下面就来分享下关于Git和SVN的内容。Git vs SVN...
    发表于 07-20 06:49

    什么是版本控制?git代码为什么需要版本控制

    系列之嵌入式开发-git代码管理第一章 [嵌入式开发-git代码管理之git的安装]文章目录系列之嵌入式开发-git代码管理前言一、为什么需要版本
    发表于 12-21 07:25

    请教一下大神使用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次下载

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

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

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

    其实我们在安装Visual SVN的时候就指定了代码仓库保存位置。此后只要我们通过Visua SVN管理界面去创建代码仓库,就可以将代码保存
    的头像 发表于 05-30 09:28 1445次阅读
    如何使用<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 5次下载

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

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