软件配置管理(六)常用配置软件配置工具指令

文章目录

  • 软件配置管理工具的主要功能
  • 两种版本控制模型
    • Lock-Modify-Unlock
    • Copy-Modify-Merge
  • Subversion
  • Git

软件配置管理工具的主要功能

  • 版本控制
  • 变更管理
  • 配置审核
  • 配置状态统计
  • 问题跟踪
  • 访问控制和安全控制

两种版本控制模型

Lock-Modify-Unlock

“加锁-修改-解锁”模型
对于版本库中的一个文件,同一时间只允许一个用户修改。

  • 锁定可能导致管理问题。一个用户可能过长时间占用文件,导致其他用户无法修改。
  • 锁定可能导致不必要的线性化开发。若两个用户修改同一个文件的不同部分,这种修改是不会造成冲突的,但锁定模型强制他们串行工作。
  • 锁定可能导致错误的安全状态。对文件的循环等待可能造成死锁。

Copy-Modify-Merge

“拷贝-修改-合并模型”
每个用户读取项目版本库建立一个私有工作副本,用户并行工作,修改各自的副本,最终将各用户的副本合并在一起,形成最终的版本。若副本之间有冲突,需要手动选择保留哪份修改。

复制-修改-合并模型感觉是有一点混乱,但在实践中,通常运行的很平稳,用户可以并行的工作,不必等待别人,当工作在同一个文件上时,也很少会有重叠发生,冲突并不频繁,处理冲突的时间远比等待解锁花费的时间少。
最后,一切都要归结到一条重要的因素: 用户交流。当用户交流贫乏,语法和语义的冲突就会增加,没有系统可以强制用户完美的交流,没有系统可以检测语义上的冲突,所以没有任何证据能够承诺锁定系统可以防止冲突,实践中,锁定除了约束了生产力,并没有做什么事。

  • 如果是不可合并的文件,如二进制文件、图片等,此时修订-修改-解锁模型会更好。

Subversion

命令名称功能
svn add将文件、目录或符号链纳入版本控制。(只有带.svn的工程才能使用add)
svn checkout从版本库取出一个工作副本。Checkout 只在第一次链接时操作一次,以后如果进行更新操作,请使用(Update)指令进行相关操作
svn commit将修改从工作副本发送到版本库
svn copy拷贝工作副本或版本库的文件或目录
svn diff显示两个版本或两个路径的区别
svn export导出一个不带.svn文件夹的目录树
svn import将未纳入版本控制的文件或目录树提交到版本库。(仅仅是把文件导入到svn服务器中,而这个文件本身还只是一个普通的文件,与svn版本库没有关系)
svn info显示本地或远程条目的信息
svn list显示版本库中的目录内容
svn lock锁定版本库中的路径,使得其他用户不能向其提交修改
svn log显示提交日志信息
svn merge合并两个版本中的内容
svn mkdir创建纳入版本控制的新目录
svn move移动一个文件或目录
svn resolved删除工作副本中目录或文件的“冲突”状态
svn revert撤销所有本地修改
svn status打印工作副本中文件和目录状态
svn switch更新工作副本至同一个版本库中另一个url
svn unlock解除工作副本或url的锁定
svn update更新本地工作副本

Git

命令名称功能
git config获取并设置储存库或全局变量
git clone下载一个项目和它的整个代码历史
git init在当前目录新建一个git代码库
git status显示有变更的文件
git diff显示暂存区和工作的差异
git add添加当前目录的所有文件到暂存区
git mv改名文件,并放入暂存区
git rm删除工作区文件,并且将这次删除放入暂存区
git commit提交暂存区的指定文件到仓库区
git log显示当前分支的版本历史
git blame追溯一个指定文件的历史修改记录。
git reset重置暂存区的指定文件,与上一次commit保持一致,但工作区不变
git revert新建一个ccmmit,用来撤销指定commit
git checkout在暂存区的本地分支之间切换或新建分支,会覆盖当前工作空间(clone用于获取您没有的存储库,checkout用于在您已有的存储库中的分支之间进行切换。)
git branch列出所有本地分支
git tag列出所有tag
git merge合并指定分支到当前分支
git remote查看已配置的远程仓库
git fetch下载远程仓库的所有变动
git pull取回远程仓库,并与本地分支合并
git push上传本地指定分支到远程仓库
git stash暂时将未提交的变化移除,稍后再移入

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/290548.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

.NET 6 攻略大全(一)

点击上方蓝字关注我们(本文阅读时间:15分钟)欢迎使用 .NET 6。今天的版本是.NET 团队和社区一年多努力的结果。C# 10 和 F# 6 提供了语言改进,使您的代码更简单、更好、性能大幅提升,我们已经看到微软降低了托管云服务的成本。.NE…

http和https和ssl和tcp/ip之间的关系和区别

1、http解释 超文本传输协议(HTTP,HyperText Transfer Protocol)是互联网上应用最为广泛的一种网络协议。所有的WWW文件都必须遵守这个标准,HTTP是客户端浏览器或其他程序与Web服务器之间的应用层通信协议。在Internet上的Web服务器上存放的都是超文本信息,客户机需要通过HT…

Win7下JDK环境变量的设置

JDK并不像Microsoft阵营vs那样智能,安装好后所有的东西都给你配置好了,我们还没需要手动配置很多东西 首先说为什么要配置JDK的环境变量在任何路径下识别java命令和java类 配置分为2个部分,1,java命令路径。2,java加载类 分为3个步…

简单模拟实现简单的当登录延时的效果

①、先建立一个activaty去部署我们的登陆界面 1 package com.example.administrator.actionbardemo;2 3 import android.app.Activity;4 import android.content.Intent;5 import android.os.Bundle;6 import android.view.View;7 import android.widget.Button;8 import andro…

《音乐达人秀:Adobe Audition实战200例》——实例11 录制任意音量音乐

本节书摘来自异步社区《音乐达人秀:Adobe Audition实战200例》一书中的第2章,实例11 ,作者 健逗,更多章节内容可以访问云栖社区“异步社区”公众号查看。 实例11 录制任意音量音乐 这个实例将讲解如何任意控制录音过程中的音量。你…

软件项目组织管理(四)项目集成管理

文章目录什么是集成管理集成管理的主要工作SWOT方法筛选信息技术项目过程项目章程集成变更控制变更控制委员会利益相关者分析什么是集成管理 在项目生命周期中协调所有其他项目管理知识领域所涉及的过程,确保项目所有组成要素在恰当的时间、正确的地方、合适的人物…

我的技术回顾2019不止技术的一年

这篇本想具体说下ABP的商业模式的演进与变化,因为愿意像我这样花费心力去研究他的人不多。写着的时候,就得没必要。真有这种想法的人,也会自己研究,我何必去写呢。2019年初,因为各种原因,加上企业资源的调整…

linux之在当前目录下删除不包含aa的文件

1、问题 1、当前目录下删除不包含aa的文件和文件夹2、解决办法 1、rm -rf ls -al | grep -v "aa"

设计模式(1)--简单工厂模式、策略模式

设计模式(1)--简单工厂模式、策略模式 1. 简单工厂模式 在阎宏博士的《JAVA与模式》一书中开头是这样描述简单工厂模式的:简单工厂模式是类的创建模式,又叫做静态工厂方法(Static Factory Method)模式。简单…

hql Hibernate.gethibernatetemplate()

1. find(String hql); //普通查询 示例:this.gethibernateTemplate().find("from User"); 2. find(String hql,Object value);//一个查询条件 示例:this.gethibernateTemplate().find("from User u where u.name?","test&quo…

软件项目组织管理(五)项目范围管理

范围管理的重要性 软件企业与IT项目应用企业信息化成功的基本保证是对项目范围的确切圈定,维持必须强调: 三类人的获取 需求专家咨询专家概要设计专家 三要素的把握 企业需求管理理论竞争压力 什么是范围 指开展项目产品所包括的所有工作及产生这些…

kmp算法讲解

转自——http://blog.csdn.net/v_july_v/article/details/7041827 看到kmp是不是立即想到(*ο*) 哇~,那个东西啊,就是拿来放电影的那个啊! 哦,但是这里我们说的并不是那个东西,身为一名C选手,我…

TLS/SSL协议工作原理

1、TLS/SSL的功能实现原理简单介绍 HTTPS协议的主要功能基本都依赖于TLS/SSL协议,TLS/SSL的功能实现主要依赖于三类基本算法:散列函数 Hash、对称加密和非对称加密,其利用非对称加密实现身份认证和密钥协商,对称加密算法采用协商的密钥对数据加密,基于散列函数验证信息的…

实现DDD领域驱动设计: Part 4

原文链接: https://dev.to/salah856/implementing-domain-driven-design-part-iv-29m2对象到对象映射当两个对象具有相同或相似的属性时,自动对象到对象映射是一种将值从一个对象复制到另一个对象的有用方法。DTO和实体类通常具有相同/相似的属性,你通常…

输入输出及注意事项

输入输出命令: 输入函数scanf:在控制台接收指定格式的键盘输入,并将输入内容置于指定变量内存地址中;【格式:scanf(“格式化说明符”, 指定变量内存地址);】 格式: scanf(“%d”,&x);注意&…

软件项目组织管理(六)项目时间管理

文章目录项目计划和进度计划什么是活动活动清单活动属性里程碑时间管理的过程1. 活动定义2. 活动排序三种依赖关系箭线图法(ADM)/双代号网络(AOA)前导图法(PDM)/单代号网络(AON)3. 活…

win7开机按F8后,为什么没有修复计算机的选项

有时win7开机按F8后,没有修复计算机的选项本文将向大家介绍如何通过 Windows 7自带的“配置 Windows 恢复环境(RE)”命令 – ReagentC.exe,启用“高级启动选项”下的“修复计算机”选项。单击 Windows 开始图标,在“搜索程序和文件”输入框中…

TLS/SSL握手过程

参考了:https://www.wosign.com/faq/faq2016-0309-04.htm 1、握手与密钥协商过程 基于RSA握手和密钥交换的客户端验证服务器为示例详解TLS/SSL握手过程。 (1).client_hello 客户端发起请求,以明文传输请求信息,包含版本信息,加密套件候选列表,压缩算法候选列表,随机数,扩…

《我的视频我做主:Premiere Pro CS5实战精粹》——第一部分 基础篇 第1章 非线性剪辑基础 1.1 认识非线性剪辑...

本节书摘来自异步社区《我的视频我做主:Premiere Pro CS5实战精粹》一书中的第1章,第1.1节,作者 拍客三人行,姜岩,赵小虎,周权虎,更多章节内容可以访问云栖社区“异步社区”公众号查看。 第一部…

FluentValidation在C#中是怎么进行数据验证的

介绍FluentValidation 是一个基于 .NET 开发的验证框架,用于构建强类型验证规则的 .NET 库。开源免费支持 .Net所有平台 包括.NetFramework和.NetCore.FluentValidation 组件内提供十几种常用验证器,可扩展性好,支持自定义验证器,…