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

文章目录

  • 软件配置管理工具的主要功能
  • 两种版本控制模型
    • 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…

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 录制任意音量音乐 这个实例将讲解如何任意控制录音过程中的音量。你…

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

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

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

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

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

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

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和实体类通常具有相同/相似的属性,你通常…

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

文章目录项目计划和进度计划什么是活动活动清单活动属性里程碑时间管理的过程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 客户端发起请求,以明文传输请求信息,包含版本信息,加密套件候选列表,压缩算法候选列表,随机数,扩…

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

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

基于Metronic的Bootstrap开发框架经验总结(5)--Bootstrap文件上传插件File Input的使用...

Bootstrap文件上传插件File Input是一个不错的文件上传控件,但是搜索使用到的案例不多,使用的时候,也是一步一个脚印一样摸着石头过河,这个控件在界面呈现上,叫我之前使用过的Uploadify 好看一些,功能也强大…

软件项目组织管理(七)项目成本管理

文章目录什么是成本什么是项目成本学习曲线理论储备金什么是项目成本管理目的过程成本估算成本估算的工具和技术成本预算主要工作成本估算和成本预算的关系和区别成本管理的工具方法净现值投资回报率挣值分析法什么是成本 为达到一个特定目标而花费的资源。 什么是项目成本 …

大话领域驱动设计——简介

如果说当下最热门的技术概念或架构思想,那么领域驱动设计(DDD)一定占有一席之地。上个系列,我讲了ABP vNext框架在微服务架构下的落地思路,而ABP vNext是基于DDD思想的完整框架之一,同时DDD也是微服务架构服…

软件项目组织管理(八)项目质量管理

文章目录软件质量的重要性对质量的认识传统的认识新的认识质量与等级什么是质量什么是质量管理什么是软件质量软件项目管理的目标质量管理的过程质量管理发展的四个阶段戴明改进循环(PDCA循环)项目质量计划编制方法——质量标杆法影响项目质量的因素(5M1…

Avalonia跨平台入门第十九篇之语音播放

在前面分享的几篇中咱已经玩耍了Popup、ListBox多选、Grid动态分、RadioButton模板、控件的拖放效果、控件的置顶和置底、控件的锁定、自定义Window样式、动画效果、Expander控件、ListBox折叠列表、聊天窗口、ListBox图片消息、窗口抖动、语音发送;今天趁着大周末的时间接着去…

软件项目组织管理(九)项目人力资源管理

文章目录什么是人力资源人力资源的特征什么是项目人力资源管理管理员工的关键所在马斯洛的需求层次理论赫兹伯格的双因素理论权力理论提高项目工作有效性的7种习惯人力资源管理过程人力资源管理的工具方法责任分配矩阵资源负荷资源平衡团队发展的5个阶段(塔克曼模型…