目录 一、历史起源1、版本控制软件答:主要是对源代码版本进行控制与管理 2、为什么需要版本控制软件3、版本控制软件起源CVS:最早期的开源的版本控制软件(开源奇葩) VSS:微软开发开发Visual SourceSafe,入门级产品,价格便宜,具有windows可视化界面,不需要额外技术培训,操作方便 ClearCase:中坚力量,对于源代码管理非常强大,但是门槛较高,收费较高(IBM) SVN:主流 Git:主流 面试题:什么是版本控制软件?你使用过哪些版本控制软件? 答:主要是对源代码的版本进行控制与管理,我了解CVS以及VSS,比较熟悉SVN,目前开发是使用SVN。 4、什么是SVNsvn全称SubVersion svn是近年来崛起的版本管理工具,是cvs的接班人。目前,绝大多数开源软件都使用svn作为代码版本管理软件。(GitHub、Oschina、CSDN) 支持Windows、Linux、MacOS 前身是CVS 时间机器 5、SVN的安装与使用SVN属于C/S结构软件,分为客户端与服务器端 SVN下载: 服务器端: 客户端: 6、SVN的使用原理图二、SVN的安装与使用1、安装SVN服务器端首选安装(VisualSVN-Server) 备选安装(Subversion) 以VisualSVN为例: 下一步: 下一步: 注:安装路径请选择除C盘以外的任一盘符且不能出现中文、空格等特殊字符 下一步,下一步,Finish完成即可,完成后,请重启电脑,也可以采用强制中止explore.exe进程。 打开运行窗口,输入svnadmin,如出现一下提示代表安装成功: 2、安装客户端SVN客户端SVN其是分版本的,分为32位与64位 通过以上确认您操作系统的类型:64位 安装成功后,如下图所示: 设置软件语言: 软件安装完成后,也需要重启,否则无法看到SVN图标 3、SVN的使用1)创建版本仓库(Shop),在服务器端创建文件夹保存我们的项目,如下图所示 以上文件夹只相当于一个普通文件夹,其还不是仓库 2)建立SVN仓库 基本语法: svnadmin create 仓库路径(如:D:\svn\MyApp\Shop) 3、配置仓库监管 基本语法: svnserve –d(后台运行) –r(监管目录)仓库路径(如D:\svn\MyApp\Shop) 监管: apache : http://localhost/定位到htdocs svn:svn://localhost或主机ip定位到监管目录(仓库) 以上窗口请勿关闭,否则系统自动关闭svn链接 4、客户端连接Shop仓库 输入svn://ip地址 检出成功,如下所示: 如出现以下图标代表,交互成功 除了图标,还有哪些变化呢? 4、Commit操作如果要提交本地文件到服务器端,请使用Commit命令 首次提交会出现以下错误: 原因:由于默认情况下,我们是不允许直接上传文件到服务器端,必须进行配置 打开仓库目录下的配置文件,如下图所示: 设置匿名用户访问权限: 再次Commit 成功。 5、Update更新三、SVN中的图标集1、同步图标: 说明:本地文件已与服务端文件同步,大小和修改时间一致。 2、未受版本控制图标 说明:当前文件在本地存在,在服务器端不存在 3、添加图标 说明:当前文件在本地存在,在服务端不存在,但下次提交时,会自动将该文件提交到服务器端 4、修改图标 说明:当前文件与服务端文件不同步,当前文件有修改,会自动提示红色叹号 5、删除图标 说明:该文件在服务端已删除,本地未删除 6、冲突图标 说明:当前文件与服务端文件有冲突,必须解决后才可以上传 7、忽略图标 说明:当前文件不提交到服务端中,默认显示忽略图标 四、SVN使用细节1、SVN中的源码存储机制2、忽略文件有些情况下,有些文件并不需要上传到服务器中(比如:需求文档、ER图解等),但是svn每次提交都会提示是否上传此文件,如何解决呢? 答:可以忽略文件命令 在要忽略的文件上,鼠标右键——TortoiseSVN——Add to ignore list 将该文件添加到忽略列表 将该系类文件添加到忽略列表 3、配置多仓库在实际项目开发中,我们可能拥有多个项目,那么如何解决svn监管多项目目录问题? 答:可以采用apache监管方式,让svn监管项目主目录 1)创建仓库 svnadmin create 仓库路径 2)建立服务器端仓库监管 由于我们拥有多个项目,所以可以采用监管MyApp主目录实现多项目监管 svnserve –d –r MyApp路径 问题:MyApp主目录通过监管后,其是文件夹还是数据仓库? 答:虽然可以通过svnserve监管MyApp目录,但是MyApp仍是一个文件夹,其只是提供一个公用的监管目录而已。 3)通过svn://localhost或ip地址/仓库名称来访问指定仓库 svn://localhost或ip地址指向MyApp目录,但是真实的仓库在MyApp目录下面,所以可以采用如下方式访问指定仓库 如:svn://localhost/OA 4、版本回退有些时候,软件的运行可能使开发者或使用者不满意,这时我们需要把当前版本退回到以前的某个版本 1)在项目文件夹中的空白位置鼠标右键,如下图所示 2、打开Head revision,单击show log 3)选择想要返回的版本信息,确定即可 5、版本冲突1)版本冲突原理 2)如果两个人对同一个文件进行修改,会引起更新冲突,如何解决? 3)版本冲突解决方案 合理分配项目开发时间 小强上午开发 旺财下午开发 合理分配项目开发模块 小强开发文章模块 旺财开发邮件模块 如果以上情况,无法解决版本冲突,那么可以采用如下方式: 1)更新(Update)最新项目文件到本地 发现系统新增加了多个文件 index.php.r5文件:记录的14:30共同下载的index.php文件信息 index.php.r6文件:记录的15:00旺财更新的文件信息 index.php.mine文件:记录的是小强15:30要上传的文件信息 index.php文件:记录是整合后的文件信息 2)删除除index.php以外的index.php相关文件 3)更新index.php文件 4)重新上传冲突文件即可 五、SVN中的权限控制在实际的项目开发中,我们需要为用户进行分权限管理: 对于高级用户:可读可写 对于普通用户:可读权限 1、找到核心配置文件 仓库目录/conf目录 authz:授权文件,内容记录了svn中的用户具有哪些权限 passwd:密码文件,内容记录了svn用户的用户名以及登陆密码 svnserve.conf:仓库的核心配置文件,其内容对整个仓库进行配置 2)启用authz与passwd文件进行权限控制 默认情况下,authz与passwd文件默认是关闭的,必须通过svnserve.conf进行开启操作,否则无法使用。 3)为svn设置相应的用户名与密码 4)为相应的用户设置相应的权限 5)验证权限与密码 重新连接服务器svn,会发现拥有以下提示: 六、配置SVN服务1、解决黑窗口问题在windows系统中,可以将监管命令已系统服务的形式追加到系统中,那么我们以后电脑启动,我们的svn就会自动启动了。 基本语法: sc create 服务名称 binpath=空格“D:\subversion\bin\svnserve.exe --service -r D:/svnroot” start=空格auto 注:该命令只能在超级管理员权限添加,另该命令具有两个空格,谨记!!! 2、将svn常用服务设置为批处理文件七、云引擎服务微信——网络——服务器支持(虚拟主机、服务器、云引擎) 1、云引擎 百度BAE云平台 新浪SAE云平台 百度云平台使用 单击创建工程 创建工程设置: 创建成功后,如下图所示 通过设置地址访问代码 通过SVN上传代码到BAE平台,上传成功后,请手工发布: 我们还可以使用扩展服务,创建数据库(MySQL、Redis) 新浪SAE云平台 创建版本信息: 访问地址: 八、域名配置与虚拟主机管理 域名和空间:中国万网、西部数据、华夏名网、美橙互联、冰橙互联 中国万网:速度快、稳定、价格昂贵,域名必须备案,否则无法使用 西部数据、美橙互联、冰橙互联 华夏名网:速度比较快、稳定、价格比较优惠 |
|