SCM工具的普遍特性

2024-03-26 06:58
文章标签 工具 特性 普遍 scm

本文主要是介绍SCM工具的普遍特性,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

SCM 工具的普遍特性
陈能技
2007-10-23
摘自 :Software configuration management in agile methods – Juha Koskela
现在有很多的SCM工具,而它们的功能特性也有很大的不同。每一个工具都有它的长处和短处。例如,有些工具在变更控制方面很好,有些则在构建管理和版本能力方面很出色。
版本控制
版本控制的主要目的是管理在软件工程过程中产生的不同版本的配置对象。
一个开发人员可以对一个没有纳入SCM控制的配置项进行任意的更改,一般来说,这时候的更改只会影响配置项本身。但是一旦配置项放到了SCM控制下,对配置项的更改就产生新的修订版本。它们可能由于不同的原因而产生,例如功能的扩展或者修正缺陷等。
多条并行开发线组织的版本叫分支。需要注意的是,分支不是实现不同产品变量的唯一方式,因为它还可以用条件编译、安装描述或者运行时检查来实现。
分支主要有两种,暂时的和永久的。一个基本的分支管理的例子如下所示:
工作空间管理
SCM还可以提供私有工作空间给开发人员。目的是防止干扰其他人的工作。这个过程是通过签出签入操作来实现的。
下图描述了这样一个过程:
同步控制
同步控制根据SCM工具的不同而做法上也有不一样,例如,有些工具对文件签出不加锁,而有些则加锁。VSS对两种方式都支持。
下图是VSS在加锁的方式下,当一个文件被某个开发人员签出后,另外一个用户尝试签出的情形:
系统构建
系统构建管理的目的是组合需要的文件版本然后编译产生应用程序。构建大概分两种方式:全部构建和增量构建。对于庞大的系统而言,增量构建能节省很多时间和机器资源。
SCM工具通过获取需要的信息进行构建工作,并让构建过程可重复进行。一个SCM工具通常包括Make工具来产生可执行软件。
流程控制和支持
流程支持意味着正式的过程模型的定义和用于帮助实现模型的机制。有些工具提供状态转移图和以活动为中心的建模的解决方案。变更控制是SCM工具的传统组成部分之一。
需要注意的是,SCM工具的根本目的是支持和自动化SCM活动,并为开发人员提供帮助。正如Weatherall说的:“SCM首先是一种态度;其次,一个流程;最后才是一套工具”。
 

这篇关于SCM工具的普遍特性的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/847637

相关文章

Java中有什么工具可以进行代码反编译详解

《Java中有什么工具可以进行代码反编译详解》:本文主要介绍Java中有什么工具可以进行代码反编译的相关资,料,包括JD-GUI、CFR、Procyon、Fernflower、Javap、Byte... 目录1.JD-GUI2.CFR3.Procyon Decompiler4.Fernflower5.Jav

使用Python创建一个能够筛选文件的PDF合并工具

《使用Python创建一个能够筛选文件的PDF合并工具》这篇文章主要为大家详细介绍了如何使用Python创建一个能够筛选文件的PDF合并工具,文中的示例代码讲解详细,感兴趣的小伙伴可以了解下... 目录背景主要功能全部代码代码解析1. 初始化 wx.Frame 窗口2. 创建工具栏3. 创建布局和界面控件4

Docker部署Jenkins持续集成(CI)工具的实现

《Docker部署Jenkins持续集成(CI)工具的实现》Jenkins是一个流行的开源自动化工具,广泛应用于持续集成(CI)和持续交付(CD)的环境中,本文介绍了使用Docker部署Jenkins... 目录前言一、准备工作二、设置变量和目录结构三、配置 docker 权限和网络四、启动 Jenkins

MobaXterm远程登录工具功能与应用小结

《MobaXterm远程登录工具功能与应用小结》MobaXterm是一款功能强大的远程终端软件,主要支持SSH登录,拥有多种远程协议,实现跨平台访问,它包括多会话管理、本地命令行执行、图形化界面集成和... 目录1. 远程终端软件概述1.1 远程终端软件的定义与用途1.2 远程终端软件的关键特性2. 支持的

Rust中的Drop特性之解读自动化资源清理的魔法

《Rust中的Drop特性之解读自动化资源清理的魔法》Rust通过Drop特性实现了自动清理机制,确保资源在对象超出作用域时自动释放,避免了手动管理资源时可能出现的内存泄漏或双重释放问题,智能指针如B... 目录自动清理机制:Rust 的析构函数提前释放资源:std::mem::drop android的妙

Java数字转换工具类NumberUtil的使用

《Java数字转换工具类NumberUtil的使用》NumberUtil是一个功能强大的Java工具类,用于处理数字的各种操作,包括数值运算、格式化、随机数生成和数值判断,下面就来介绍一下Number... 目录一、NumberUtil类概述二、主要功能介绍1. 数值运算2. 格式化3. 数值判断4. 随机

使用Navicat工具比对两个数据库所有表结构的差异案例详解

《使用Navicat工具比对两个数据库所有表结构的差异案例详解》:本文主要介绍如何使用Navicat工具对比两个数据库test_old和test_new,并生成相应的DDLSQL语句,以便将te... 目录概要案例一、如图两个数据库test_old和test_new进行比较:二、开始比较总结概要公司存在多

Java中基于注解的代码生成工具MapStruct映射使用详解

《Java中基于注解的代码生成工具MapStruct映射使用详解》MapStruct作为一个基于注解的代码生成工具,为我们提供了一种更加优雅、高效的解决方案,本文主要为大家介绍了它的具体使用,感兴趣... 目录介绍优缺点优点缺点核心注解及详细使用语法说明@Mapper@Mapping@Mappings@Co

使用Python实现图片和base64转换工具

《使用Python实现图片和base64转换工具》这篇文章主要为大家详细介绍了如何使用Python中的base64模块编写一个工具,可以实现图片和Base64编码之间的转换,感兴趣的小伙伴可以了解下... 简介使用python的base64模块来实现图片和Base64编码之间的转换。可以将图片转换为Bas

使用Java实现一个解析CURL脚本小工具

《使用Java实现一个解析CURL脚本小工具》文章介绍了如何使用Java实现一个解析CURL脚本的工具,该工具可以将CURL脚本中的Header解析为KVMap结构,获取URL路径、请求类型,解析UR... 目录使用示例实现原理具体实现CurlParserUtilCurlEntityICurlHandler