原文转自https://www.cnblogs.com/EltonLiang/p/7105034.html

在我们工作中,必然会遇到代码的多个版本问题,也必然会遇到版本控制问题。如果所在的公司具有良好的项目管理体系或者软件管理体系,那么其版本控制应该有严格的使用规范,如果没有则作为一个上进好青年也应当熟练掌握版本控制的一些技巧。这里简单的介绍一下在工作中,我们的版本控制如何使用。

  • 版本控制是什么

版本控制是什么在这个文章就不再介绍了,你没有概念,可以先在百度或者谷歌搜索相关概念。

这里给一个Wiki的链接方便大家了解:

https://zh.wikipedia.org/zh/%E7%89%88%E6%9C%AC%E6%8E%A7%E5%88%B6

  • 为什么LabVIEW开发使用版本控制

LabVIEW软件开发同样存在大量的版本控制需求,无论是TestStand序列还是LabVIEW程序设计,我们总会有阶段性的去输出一些版本。如果在没有版本控制的情况下开发程序,我们很容易面临如下问题:

1. 代码如果想保存,需要不停的复制和备份,占用大量硬盘资源

2. 代码如果想返回原先某一状态比较困难

3. 代码如果想要协同开发比较困难,最典型的就是协同开发导致大量冲突VI

  • 选用哪种版本控制软件

版本控制软件很多,常用的有Git和SVN,而TortoiseSVN由于其图形化的操作和简单易用的特性,在LabVIEW开发中应用比较多一些,本文也将以TortoiseSVN为例讲解软件程序中的版本控制。

TortoiseSVN的开发文章参考

http://jingyan.baidu.com/article/358570f6638aa4ce4724fcf7.html

  • TortoiseSVN如何使用

TortoiseSVN的使用通常分为几种,根据使用人数分为单人开发使用和多人开发使用,根据使用方式不同分为联网使用和单机使用。

  1. 在版本控制比较弱的情况下或者客户环境限制无法联网,我们使用的是单人单机开发模式进行代码的版本控制

  2. 在单人多态电脑开发的情况下,我们使用单人联机模式进行开发

  3. 在多人情况下一般使用联网模式,进行协同开发

  4. 单人单机模式开发

单人单机模式使用版本控制,可以让我们单机的程序具有版本控制的功效,让我们可以轻松的撤回以前的版本,具体使用流程如下

  • 源码仓库建立

首先找一个比较隐秘的文件夹,作为我们的源码仓库,点击右键弹出TortoiseSVN菜单,并且创建源码仓库(Create Repository here)

点击Create Folder Structure 完成文件夹结构的创建,点击OK完成

  • 版本控制设定

源码仓库建立完成后,我们可以打开需要版本控制的文件夹,选择SVN Checkout来将该文件夹版本控制起来

路径处的URL填写本地刚刚建立的源码仓库地址,Checkout directory设置为当前需要版本控制的文件夹

如果想要细化文件夹路径,如将版本规范的放在trunk目录下可以选择配置

点击OK,即可将当前文件夹填入版本控制区间

第一次提交版本为version 1

提交完成后,文件夹内的文件会显示问号,代表没有进行控制

在文件夹目录内选择Commit,提交代码或者备份的文档

在1处填写工作日志和版本日志,在2处选择需要提交哪些问题,点击OK完成内容的提交

提交后,弹出信息界面,我们的版本升级为version 2

这时候,我们本地的文件夹目录所有保护起来的文件均有了绿色的小箭头,代表本地的文件与源码仓库一致


撤回操作

在提交完成后,我们的代码/文档已经全部备份,这时候我们对文件的任何改动都可以撤回,这里我们以文件不小心删除为例(实际中我们通常会碰到文件误修改或者删除的情况)

文件删除后内容丢失,这时我们可以选择Revert操作,将丢失的文件从源码仓库中重新拷贝一份出来

勾选需要撤回的内容,点击OK完成撤回操作

撤回后,文件又回恢复

实际中,我们通常是某些代码文件修改后需要放弃修改使用本功能,误删除只是一种情况。更有甚者整个文件夹全部删除的时候,我们也可以重新Checkout来获取代码。

TortoiseSVN给我们的代码添加了一层保险,只要源码仓库存在,我们可以任意的处理我们当前的文件,而不怕丢失

撤回历史版本

在一些情况下,我们需要撤回到几天前开发的代码版本,我们可以选择update to revision

输入版本号即可选择撤回到哪个版本

实际上我们很少会记录版本号,这里选择Showlog,通过日志来查看我们的版本,选择指定的版本

这里就体现出了我们的版本日志的重要性,只有完整的版本日志才能便于我们切回准确的版本进行修改代码

点击OK,可以回到之前开发的某一个版本


总结

由于篇幅关系,这里只介绍了单机开发模式下的几个常用功能

1. 源码仓库建立

2. 文件夹版本控制添加

3. 文件夹版本提交

4. 当前版本撤回操作

5. 历史版本撤回操作

SVN的使用是LabVIEW代码开发的基础,不使用版本控制的软件工程师或者系统集成工程师将会面临大量的代码问题,这些问题都属于没有良好工作习惯而导致的。

LabVIEW版本控制(转)的更多相关文章

  1. 【SVN技巧】如何协同开发LabVIEW代码 1

    前言 在我们工作中,必然会遇到代码的多个版本问题,也必然会遇到版本控制问题.如果所在的公司具有良好的项目管理体系或者软件管理体系,那么其版本控制应该有严格的使用规范,如果没有则作为一个上进好青年也应当 ...

  2. [版本控制之道] Git 常用的命令总结(欢迎收藏备用)

    坚持每天学习,坚持每天复习,技术永远学不完,自己永远要前进 总结日常开发生产中常用的Git版本控制命令 ------------------------------main-------------- ...

  3. Git分布式版本控制教程

    Git分布式版本控制Git 安装配置Linux&Unix平台 Debian/Ubuntu $ apt-get install git Fedora $ ) $ dnf and later) G ...

  4. Visual Studio Code 使用Git进行版本控制

    Visual Studio Code 使用Git进行版本控制 本来认为此类教程,肯定是满网飞了.今天首次使用VS Code的Git功能,翻遍了 所有中文教程,竟没有一个靠谱的.遂动笔写一篇. 请确保你 ...

  5. 解析大型.NET ERP系统 版本控制

    数据库版本控制 1) 开发版本控制.控制多人同时修改数据库产生的冲突,使用SQL Source Control 工具做版本管理. SQL Server Management Studio支持VSS和T ...

  6. 版本控制工具比较-CVS,SVN,GIT

    首先介绍几个版本控制软件相互比较的重要依据: a.版本库模型(Repository model):描述了多个源码版本库副本间的关系,有客户端/服务器和分布式两种模式.在客户端/服务器模式下,每一用户通 ...

  7. TeamCity : Build 版本控制系统配置

    VCS (版本控制系统) 是用来跟踪项目源文件版本变化的系统.它还有其它的名字,比如 SCM(源代码管理).当前 TeamCity 内置支持的 VCS 类型有:Git, Subversion, Mer ...

  8. 最好用的Unity版本控制工具

    自从来到现在的公司,负责Unity组开发以来,尝试了各种版本控制工具.从一开始的TortoiseSVN,到后来为了追求逼格使用Git,尝试了Github客户端和SourceTree,发现都有各种不爽. ...

  9. 如何用Github版本控制非Github库

    Git的图形化客户端有很多,不同的人可能习惯用不同的客户端.本人更习惯于Github的客户端,因为上Github比较多,同步代码到Github用官方的客户端是最方便的,所以也就更习惯于使用Github ...

随机推荐

  1. 2016vijos 1-3 兔子的晚会(生成函数+倍增FWT)

    求出序列的生成函数后,倍增FWT #include<cstdio> using namespace std; #define N 2048 ; int inv; ]; int Pow(in ...

  2. HDU 1011(星河战队 树形DP)

    题意是说在一个洞穴中有许多房间,每个房间中有一些虫子和大脑,这些房间之间用隧道相连形成一棵树,士兵们杀虫子的能力有限,也可以直接杀死虫子而不消耗士兵战斗力,但这样就无法得到房间中的大脑,士兵们不能走回 ...

  3. Gym 100820C(级别排序 **)

    题意是说有一些人参加了不同级别的班,级别有 lower,middle,upper 三种,级别可以组合,出现比如 lower upper,middle upper 这种级别,级别的比较是从右往左,如果在 ...

  4. Golang入门教程(七)基本数据类型使用案例

    18种基本数据类型使用 代码案例1 package main import "fmt" func main() { //使用 var 定义一个布尔类型并且初始化 var flag ...

  5. solrj管理索引库

    solrj管理索引库 1.1. 什么是solrJ solrj是访问Solr服务的java客户端,提供索引和搜索的请求方法,SolrJ通常在嵌入在业务系统中,通过SolrJ的API接口操作Solr服务, ...

  6. 使用Calender类获取系统时间和时间和运算

    使用Calender类获取系统时间和时间和运算: @Test public void testCal(){ //使用Calender对象获取时间,并对时间进行计算: Calendar instance ...

  7. flask结合celery实现异步响应HTTP请求

    摘要: 1.场景描述 2.flask介绍 3.celery介绍 4.项目伪代码记录 5.几个备注点 内容: 1.场景描述 最近在优化用户画像的东西,要开发一个给文本打标签的服务:我这边需要提供一个HT ...

  8. 在 CentOS6 上安装 Zabbix2.4 Server

    #!/bin/bash # # .配置无人值守的安装,定义安装过程中需要用到的一些信息 # mysql_root_pw=root_pw mysql_zabbix_pw=zabbix_pw DBPass ...

  9. [Android] Android 异步定时任务实现的三种方法(以SeekBar的进度自动实现为例)

    [Android] Android 定时异步任务实现的三种方法(以SeekBar的进度自动实现为例) 一.采用Handler与线程的sleep(long)方法 二.采用Handler与timer及Ti ...

  10. extjs.net Combox赋值

    1.直接赋值 ].Rows) //遍历获取两个值 { Ext.Net.ListItem listItem = new Ext.Net.ListItem(); //每次创建一个Ext.Net.ListI ...