ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

版本控制系统

2021-07-03 19:01:27  阅读:217  来源: 互联网

标签:svn git 控制系统 副本 版本 var project1


Subversion & SVN
目标:实现数据的协作编辑和共享
版本库类型默认是"fsfs"
架构说明:client端+版本库访问层+版本库+底层库(FSFS)
组件:svn 、svndumpfilter、svnrdump、svnsync、svnadmin 、svnlook、 svnserve、svnversion
3种方式访问SVN:基于webdav,基于SVN,直接本地访问
基于webdav是用Apache的mod_dav_svn模块实现访问版本库
SVN是一个客户端/服务器的系统,集中式的
特点:版本库是SVN的核心;记录每次更改
版本控制系统的价值在于它跟踪文件和目录的版本,记录每个版本(只要不删除)
文件共享问题:
版本控制需要避免同时多个人修改的问题,通过”锁定-修改-解锁方案“的可以解决但是只能单人作战,还有多个文件可能有相互依赖关系导致修改失败
所以,版本更改工作方式:拷贝-修改-合并方案:
在这种模型里,每一个客户端联系项目版本库建立一个个人工作拷贝—版本库中文件和目录的本地映射。用户并行工作,修改各自的工作拷贝,
最终,各个私有的拷贝合并在一起,成为最终的版本,这种系统通常可以辅助合并操作,但是最终要靠人工去确定正误。
当发生文件冲突时,需要手工解决冲突,商量保留哪一个更改
svnserve -d #开启daemon服务模式,客户端访问时需要指定绝对路径(svn://服务器IP/var/svn/project)
工作副本如何工作:
subversion根据修订版本和时间戳来判断工作副本的4中不同状态
基本工作指令:
checkout #创建副本 ,例如:svn checkout http://svn.example.com/repos/calc
commit #提交到版本库(原子事务提交),例如:svn commit button.c -m "Fixed a typo in button.c."
update #更新工作副本
import #导入文件到库
SVN内置认证和授权通过svnserve.conf来控制的
提交前回滚: svn revert
已提交后回滚:svn merge
######################################
开始SVN之旅(例子):
创建版本库:svnadmin create project1
加入文件到版本库:svn import /usr/lib/systemd/system file:///var/svn/project1 -m "Init"
生成工作副本prj1-Copy:svn checkout file:///var/svn/project1/ prj1-Copy
版本库信息:svn info svn://192.168.253.150/var/svn/project1
版本库修改历史:svn log svn://192.168.253.150/var/svn/project1
列出版本库的文件内容:svn list svn://192.168.253.150/var/svn/project1
添加一个副本文件到工作副本目录:svn add COPY00000.TXT
提交到版本库:svn commit -m "create a file" #这时本地副本和版本库内容一致,版本一致
对比版本库和工作副本的差别:svn diff
查看版本库某个文件内容:svn cat svn://192.168.253.150/var/svn/project1/wpa_supplicant.service
###############################################
备份版本库:svnadmin dump /var/svn/project1 > PRJ.BAK
恢复前创建新的版本库:svnadmin create /home/jk/proJ2/
恢复版本库:svnadmin load /home/jk/proJ2/ < PRJ.BAK
########################################
Git是一个分布式版本控制系统,去中心化的,目前最流行的。
配置git用户信息和编辑器
组成:工作区、暂存区("版本库"/.git/index)、版本库(.git)
[root@manager ~]# git config --global user.name "hhaa"
[root@manager ~]# git config --global user.email "hhaa@164.com"
[root@manager ~]# git config --global core.editor vim
[root@manager ~]# git config --list
创建版本库:
[root@manager ~]# mkdir deveops
[root@manager ~]# git init deveops
################
初始化空的 Git 版本库于 /root/deveops/.git/
添加文件到暂存区:git add toGit.txt
查看git提交状态:git status
提交到版本库:git commit -m "The 1st ci"
查看暂存区的文件:git ls-files
################
CI(Jenkins)过程:
0.程序猿提交代码更新到软件仓库
1.CI服务器基于计划任务查询仓库,并下载代码;
2.CI服务器运行构建过程并生成软件包;
3.CI服务器进行单元和集成测试,存储测试结果;
4.向开发团队发送构建通知;
##########################

标签:svn,git,控制系统,副本,版本,var,project1
来源: https://www.cnblogs.com/Haihong72H/p/14967034.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有