前言

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

版本控制是什么

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

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

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

LabVIEW软件开发同样存在大量的版本控制需求,无论是TestStand序列还是LabVIEW程序设计,我们总会有阶段性的去输出一些版本。如果在没有版本控制的情况下开发程序,我们很容易面临如下问题:
1. 代码如果想保存,需要不停的复制和备份,占用大量硬盘资源
2. 代码如果想返回原先某一状态比较困难
3. 代码如果想要协同开发比较困难,最典型的就是协同开发导致大量冲突VI

选用哪种版本控制软件

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

TortoiseSVN如何使用

TortoiseSVN的使用通常分为几种,根据使用人数分为单人开发使用和多人开发使用,根据使用方式不同分为联网使用和单机使用。
  • 在版本控制比较弱的情况下或者客户环境限制无法联网,我们使用的是单人单机开发模式进行代码的版本控制
  • 在单人多态电脑开发的情况下,我们使用单人联机模式进行开发
  • 在多人情况下一般使用联网模式,进行协同开发

单人单机模式开发

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

源码仓库建立

首先找一个比较隐秘的文件夹,作为我们的源码仓库,点击右键弹出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代码开发的基础,不使用版本控制的软件工程师或者系统集成工程师将会面临大量的代码问题,这些问题都属于没有良好工作习惯而导致的。

 

 

【SVN技巧】如何协同开发LabVIEW代码 1的更多相关文章

  1. 关于使用gitlab协同开发提交代码步骤

    记录使用gitlab协同开发时从自己的分支向master分支提交代码的步骤: 环境:安装了git和TortoiseGit(git的可视化工具) 1.首先切换到自己的分支(如果不在自己的分支) 2.gi ...

  2. 华为如何实现基于Git的跨地域协同开发

    跨地域开发的需求其实由来已久,在IT/互联网发展的早期就已存在,只不过限于当时网络环境的因素,无法在线上有效的完成协同工作,所以没法实际开展.而随着近十年网络的快速发展,跨地域协同开发线变得可能而且越 ...

  3. 协同开发中SVN的使用建议

    协同开发中SVN的使用建议 1.  注意个人账户密码安全 各员工需牢记各自的账户和密码,不得向他人透漏,严禁使用他人账户进行SVN各项操作(主要考虑每个SVN账号的使用者的权限范围问题).如有忘记,请 ...

  4. 【SVN多用户开发】代码冲突&解决办法

    SVN是一款集中式的代码存储工具,可以帮助多个用户协同开发同一应用程序. 但是SVN不能完全代替人工操作,有时也需要程序员自己进行沟通确认有效的代码. 下面就简单的看一下,常见的代码冲突以及解决方法. ...

  5. 2014-07-25 改进自定义菜单与使用SVN进行协同开发

    今天是在吾索实习的第13天.今天没有做过多的代码设计,只进行了一些代码的分析与进一步优化.其中,发现创建自定义菜单的关键代码书写可分为两部分: JSON格式的字符串在.net中的语法书写: strin ...

  6. 【转】协同开发中SVN使用规范试用

    转自:http://www.cnblogs.com/BraveCheng/archive/2012/07/02/2573617.html 协同开发中SVN使用规范试用 目标,要求 本次svn提交规范主 ...

  7. [SVN技巧]代码提交中遇到的两个问题及其解决方案

    前言 SVN在使用的过程中会遇到各种各样的问题,小黑在最近的使用中,遇到如下的两个问题,这里贴出来供大家参考 问题记录 SVN在源码仓库中不存在,导致无法删除和上传 问题提示: Working cop ...

  8. 更新协同开发工具SVN的链接的服务器地址

    公司内的协同开发工具使用的SVN,因为换了个服务器需要重置SVN地址,一下子有点措手不及. 研究了下SVN的操作菜单,发现有一个功能“重新定位”,应该就是我要找的了,试了一下果真没错,记录下 第一步: ...

  9. 提升代码幸福度,五个技巧减少js开发中的if else语句

     壹 ❀ 引 在JavaScript开发中,条件判断语句的使用频率是极高的,而对于条件判断简单易读的if else应该都是大家的首选.可是代码写的久了,我们总是希望自己的代码看着能更为简洁规范(逼格更 ...

随机推荐

  1. GNOME Shell Extension常用扩展

    这篇博文的,主要目的是为了方便我和大家安装GNOME扩展.我将我安装过的所有扩展列在此处. 常用扩展 Clipboard Indicator https://extensions.gnome.org/ ...

  2. 洛谷P4383 林克卡特树

    题意:树上最长不相交k条链. #include <cstdio> #include <algorithm> #include <cstring> typedef l ...

  3. A1056. Mice and Rice

    Mice and Rice is the name of a programming contest in which each programmer must write a piece of co ...

  4. 【POJ3017】Cut the Sequence

    题目大意:给定一个长度为 N 的序列,将序列划分成若干段,保证每段之和不超过 M,问所有段的最大值之和最小是多少. 题解:设 \(f[i]\) 表示前 i 个数满足上述条件的最优解,显然有状态转移方程 ...

  5. apigateway-kong(七)配置说明

    这一部分应该在最开始介绍,但是我觉得在对kong有一定了解后再回头看下配置,会理解的更深刻.接下来对这个配置文件里的参数做个详细的解释便于更好的使用或优化kong网关. 目录 一.配置加载 二.验证配 ...

  6. java8的新特性详解-----------Lamda表达式

    java8最大的亮点就是引入了Lamda表达式  , 函数式编程的概念  具体啥意思我也不知道.只管用就行了,非常的强大,简洁,一个表达式相当于以前的十几行代码  因为之前要实现这种效果全靠if el ...

  7. 用java发邮件之一 (直接源于真实项目) 【原】

    真实项目应用的java发送邮件,应该还待进一步完善. 依赖 mail-1.4.jar jar包下载地址: http://mvnrepository.com/artifact/javax.mail/ma ...

  8. Git fetch & pull

    转:https://blog.csdn.net/qq_36113598/article/details/78906882 1.简单概括 先用一张图来理一下git fetch和git pull的概念: ...

  9. Java编程思想 学习笔记0(忽略)

    前言 emmm...博客荒废了好久,总是有各种借口拖延,做的许多题都没有总结.买了一本厚厚的java书,所以决定先新开一个专题,逼迫自己坚持更新学习进度吧,同时也巩固一下知识,做个记录,不至于荒废时光 ...

  10. Centos7系统初始化脚本

    前言: 因公司业务增加,陆续新增服务器,时不时的来几台,手动地一台台对服务器初始化操作感觉太麻烦. 于是乎,根据初始化需求整合了一个初始化脚本,实现批量脚本初始化操作. 说明: 本脚本根据自身需求编写 ...