前言

我们都知道每一件工具的诞生都是为了方便我们的生活。SVN(Subversion)学习工具在我们“合作”开发软件过程中起到了很大的作用。说起SVN先说说SCM。

内容

SCM

定义

英文名字为(Supply ChainManagement)供应链关系管理:是一种集成的管理思想和方法,我自己的理解在软件开发过程中我们需要对软件开发做一个好的规划,可以采用这个思想和方法来指导我们去更好地开发。

开发有了好的思想和方法,但是需要什么工具呢?SVN就出场了,每一个工具的产生都是因为有这种或者那种需求。

SVN

定义

是一个开发源代码的版本控制系统,采用了分支管理,设计目标取代CVS。换句话来说就是:记录并控制软件产品数据的管理工具。

工作方式

开发软件的合作人员,不定时的对SVN服务器上的数据进行修改,提交。采用了事务的思想,SVN保证了修改代码的一致性,完整性。

功能

  • 统一版本号,任何一次提交都会对所有文件增加到同一个新版本号,即使提交并不涉及文本文件,版本号相同的文件构成了软件的一个版本。
  • 原子提交,不管提交多少东西,只要是一次提交,就是作为一个整体提交的,就更新一个版本号,当提交过程中发生中断的情况,不会损坏数据库的完整性。
  • 当重命名、删除、复制等操作都会保存在版本历史记录中。
  • 对于二进制文件,只保存和上一个版本的不同之处,减少了资源占用空间。

数据存储方式

存储版本数据有两种存储方式:一种是事务安全型表——BDB和一种不需要数据库的安全存储系统——FSFS,BDB在中断时容易锁住数据,所以用FSFS更加安全一些。

小结

  • 万事开头难,最难的地方也是最锻炼人的地方。
  • 一回生二回熟,多多百度,多多了解,多多实践。

感谢您的宝贵时间~~~

初识SVN的更多相关文章

  1. 软件配置管理中的SVN

    一.简单介绍 1.什么是软件配置管理 软件配置管理是指通过运行版本号控制.变更控制的规程.以及使用合适的配置管理软件.来保证全部配置项的完整性和可跟踪性. 配置管理是对工作成果的一种有效保护. 2.为 ...

  2. 【SVN】SVN初识

    SVN 介绍 SVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于RCS.CVS,它采用了分支管理系统,它的设计目标就是取代CVS.互联网上很多版本控制服务已从CVS迁移到Sub ...

  3. SVN服务器&客户端的搭建和使用

    目录结构: 1. SVN服务器搭建和使用-VisualSVNServer 2. SVN客户端安装和使用-TortoiseSVN 3. TortoiseSVN使用方法 SVN简介 SVN是Subvers ...

  4. 单人SVN提交bug

    The working copy "初识tableVIew" failed to commit files. fatal: Unable to create '/Users/zjj ...

  5. 初识Eclipse!!

      Java之路 ——初识Eclipse   零.大纲 一.前言 二.获取Eclipse 三.运行Eclipse 四.创建及运行第一个Java Project 五.界面介绍 六.如何调试 七.获取插件 ...

  6. git 入门教程之初识git

    初识 git git 是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目. 背景 我们都知道,Linus 在1991年创建了开源的linux系统,随着不断发展壮大,目前已发展成为最大 ...

  7. day03深浅拷贝、文件操作和函数初识

    一.赋值.浅拷贝与深拷贝 直接赋值:其实就是对象的引用(别名). 浅拷贝(copy):拷贝父对象,不会拷贝对象的内部的子对象. 深拷贝(deepcopy): copy 模块的 deepcopy 方法, ...

  8. EnjoyingSoft之Mule ESB开发教程第一篇:初识Mule ESB

    目录 1. Mule ESB基本介绍 2. Mule ESB社区版和企业版 3. Mule ESB常用场景 4. Mule ESB软件安装 客户端安装 服务端安装 5. 第一个Mule ESB应用- ...

  9. Mahout In Action-第一章:初识Mahout

    1. 初识Mahout 本章涵盖以下内容: Apache Mahout是什么? 现实中推荐系统引擎.聚类.分类概述 配置mahout 读者可能从本书的标题中猜测到,本书是一本讲解如何将mahout应用 ...

随机推荐

  1. DBGrid1

    A.ShowMessage(IntToStr(Column.Index));   B.ShowMessage(IntToStr(dbgrid1.SelectedField.Index)); .得到当前 ...

  2. cssParser

    //cssParser.h #include<iostream> using namespace std;struct MyAttribute{ MyAttribute*  next; s ...

  3. UI层自动化测试介绍

    UI指的是用户可以用肉眼可以看到的页面. UI层自动化测试的原理.不论是web端还是移动端,原理都是一样的,就是基于页面元素的识别和定位来进行模拟用户行为. 首先识别到某个元素,比如一个按钮,然后定义 ...

  4. Java企业微信开发_02_通讯录同步

    一.本节要点 1.获取通讯录密钥 获取方式: 登录企业微信—>管理工具—>通讯录同步助手—>开启“API接口同步”  ; 开启后,即可看到通讯录密钥,也可设置通讯录API的权限:读取 ...

  5. hdu-5635 LCP Array

    LCP Array Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Others)Total ...

  6. 把自定义的decoder加入ffmpeg源码

    第一步: 在libavcodec目录下新建mkdecoder.c,并加入一下代码: /* *实现一个自己的decoder,编码工作其实就是把pkt的数据拷贝到frame *作者:缪国凯(MK) *82 ...

  7. H.264 码率设置

    一.什么是视频码率 视频码率是视频数据(包含视频色彩量.亮度量.像素量)每秒输出的位数.一般用的单位是kbps. 二.设置视频码率的必要性 在网络视频应用中,视频质量和网络带宽占用是相矛盾的.通常情况 ...

  8. log4net初探

    /// <summary> /// Static constructor that initializes logging by reading /// settings from the ...

  9. 浅谈vue路由原理

    Vue的路由实现:hash模式 和 history模式 hash模式:在浏览器中符号“#”,#以及#后面的字符称之为hash,用window.location.hash读取: 特点:hash虽然在UR ...

  10. C#中如何获取一个二维数组的两维长度,即行数和列数?以及多维数组各个维度的长度?

    如何获取二维数组中的元素个数呢? int[,] array = new int[,] {{1,2,3},{4,5,6},{7,8,9}};//定义一个3行3列的二维数组int row = array. ...