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

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

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

两种版本控制模型

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 暂时将未提交的变化移除,稍后再移入

在这里插入图片描述


软件配置管理(六)常用配置软件配置工具指令
https://buttering.github.io/EasyBlog/2021/06/19/软件配置管理(六)常用配置软件配置工具指令/
作者
Buttering
发布于
2021年6月19日
许可协议