Gz__07svn版本控制
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Gz__07svn版本控制相关的知识,希望对你有一定的参考价值。
程序设计中的"后悔药"——SVN
一、为什么需要SVN
你们在做中级项目中,都是采用小组合作开发的?那么说说你们在后期整合中遇到问题?
?
?
主要应用于:
1、协作开发
2、远程协作
3、版本回退
二、什么是SVN
- svn全称SubVersion
- svn是近年来崛起的版本管理工具,是cvs的接班人。目前,绝大多数开源软件都使用svn作为代码版本管理软件。(oschina、Github)
- 支持Windows、Linux、MacOS
- 前身是CVS
- 时间机器
?
解决第一个问题中的解决方案
SCM (软件配置管理)
对软件源代码的管理
?
CVS:主要工作是对C语言或C++进行代码管理,但是由于编码问题,一直没有得到广泛的推广。
VSS:Viusal Source Safe:Visual Studio产品中的一员,主要是对.NET版本控制
ClearCase:类似于VSS,功能强于CVS,但是由于其价格昂贵,一直没有得到广泛的推广。
SVN:版本控制软件(主流)
Git:Linux下面的版本控制软件
面试题:什么是版本控制软件,有哪些功能,你知道的有哪些,你最擅长的是什么?
?
SVN:采用的是C/S结构
?
三、SVN中三大指令
1、Checkout 检出
2、Update???? 更新
3、Commit 提交
?
1、做为项目经理或技术总监,在项目开始时,首先在服务器上部署我们的SVN项目
2、上传我们的源代码(主要是一个公用文件或规则等)分为两步:
第一步:首先建立与服务器的链接(Checkout)
第二步:我们提交代码这个过程称之为(Commit)
?
四、SVN的安装与配置
1、SVN分为服务器端与客户端
- 服务器端:VisualSVN SubVersion
- 客户端:TortoiseSVN
?
server
client
http://tortoisesvn.net/downloads
?
2、软件安装顺序
先安装服务器端,服务器没有版本位数区分
VisualSVN:随时安装随时使用,方便卸载,无残留
3、服务器端软件的安装注意事项
软件必须安装在除C盘以外的任意盘符下,文件夹命名不能出现空格或特殊字符,也不能出现中文。
安装完成,打开dos窗口输出svn,如果提示不是系统命令,那么轻重启电脑或强制结束explorer.exe,重新建立一下
?
?
4、客户端软件安装
?
出现如下界面代表安装成功
】
如果需要汉化的同学,请安装汉化包
?
?
五、数据仓库
在svn中我们的项目,不能称之为项目或文件夹,而是称之为"仓库"
仓库的建立步骤:
1、创建代码仓库
- svnadmin create D:\\svn\\myApp\\shop
2、启用代码仓库
svnserve –d(代表后台运行)-r(监管目录) D:/svn/myApp/shop
?
Apache à localhost Apache/htdocs
SVNà D:/svn/myApp/shop svn://localhost(主机名或ip地址)
?
3、如果建立客户的与服务器端的联系
单击版本库浏览器,输入如下网址:
鼠标右键,检出,出现如下界面,代表以建立连接
出现如下,隐藏文件夹,代表成功
4、上传代码注意事项
?
?
提示无权限:那么请打开仓库中的conf文件夹
?
找到svnserve.conf文件
更改第19行代码,如下:
?
六、图标解析
?
1、代表服务器端与客户端文件相同,没有任何更改
2、当前文件如果有修改,那么将显示如下图标
3、当前要提交的文件,与服务器上其他人提交的文件有冲突,那么将显示如下图标
4、当前文件,在服务器上已被删除,那么将显示如下图标
5、当我们的文件,在服务器中,无法找到,那么将显示如下图标
6、当我们的文件出现5的提示,那么你可以通过添加实现,下次commit过程中,自动提交的效果,图标如下:
7、当我们的文件中,存在一些与系统无关的文件,如测试文件、项目需求分析文档等一系列文件,我们可以采用忽略的方式,图标如下:
忽略方式有两种:
一种:只忽略某一个文件
二中:忽略某一类型文件
七、SVN中的数据备份
?
差异存储法:
?
八、版本回退
?
?
?
九、版本冲突
?
原理图:
?
解决办法:
三种方案:
1)合理分配项目开发模块
wangcai:文章,邮件,会员
xiaoqiang:静态化,缓存,前台
?
2)合理分配项目开发时间
wangcai:上午开发
xiaoqiang:下午开发
?
3)多者同时开发某一文件,产生了问题,那么可以采用如下方式解决:
步骤:
1、首先更新文档,下载最新文件,如下图
?
.r9:是系统最初的一个状态文件
.r10:是系统最新的也就是旺财上传的那个文件
.mine:我们现在要上传的文件
index.php文件是把两者的代码,进行了统一与合并
2、删除index.php以外的三个文件
3、合并与调整冲突代码
4、重新提交
成功
?
十、多仓库配置
如果单独监管某一项目文件,无法同时进行开发工作。
所有项目都是放在myApp这个目录下面
我可以不可以直接监管myApp
?
问题1:如果我们监管myApp目录,那么myApp目录需要svnadmin create么?
问题2:它属于仓库么?
答:该文件本身不需要存储任何代码,其功能就是包含项目文件夹,所以从本质上来说,其还是一个文件夹。
功能:让svn://localhost(域名),定位到此文件夹。
?
那么:
比如shop项目访问的路径为:svn://localhost/shop
cms:项目访问的路径为:svn://localhost/cms
wechat:项目访问的路径为:svn://localhost/wechat
?
十一、权限控制
问题:当前采用单仓库或多仓库配置中,所有的文件权限都是可读写的,这样就会存在一个问题,只要任何知道了我们的访问地址,那么都可以对文件进行读写操作。
?
1、为什么需要权限控制
?
打开服务器端的项目文件夹:
svnserve.conf:项目的主配置文件,功能的开启和关闭
passwd:主要定义系统中拥有哪些用户以及用户密码
authz:该文件功能主要是进行文件授权,告诉svn哪些人拥有哪些权限。
?
默认情况下,系统主配置文件中,是没有开启passwd以及authz授权功能的,权限控制步骤:
1、在主文件配置开启passwd以及authz验证
2、定义系统中有哪些用户与密码
?
3、给用户授权
?
4、重新开启监听
结束方法:Ctrl+C结束监听
当我们进行提交的时候,需要
?
十二、配置自动启动服务
1、添加到系统服务
sc create SVNService binpath= "D:\\subversion\\bin\\svnserve.exe --service -r D:/svnroot" start= auto
特别注意:
在binpath=后面有一个空格
在start=后面也有一个空格
必填,谨记!!!
在系统服务中,将出现如下命令
2、启动、停止与删除命令
- net start SVNService 启动
- net stop SVNService 停止
- sc delete SVNService删除
?
启动与停止命令,采用net start|stop 服务名称
删除操作
?
3、封装命令到批处理文件
参考课件中的bat文件
?
十三、扩展知识
1、BAE注册与使用,参考extend下面的BAE注册与配置文档
2、微信公众平台注册:mp.weixin.qq.com
准备一个小图标,300*300
准备霸气的名字
3、靠谱助手 4、css回顾一遍
以上是关于Gz__07svn版本控制的主要内容,如果未能解决你的问题,请参考以下文章