svn版本控制软件学习笔记

1.svn版本控制软件

  • 为什么需要使用svn?

svn版本控制软件学习笔记

  • 解决之道
    • SCM:软件配置管理

所谓的软件配置管理实际是对软件源代码进行控制和管理

  • CVS:元老级产品
  • VSS:入门级产品
  • clearCase:Ibm公司提供技术支持
  • SVN:主流产品

 

  • svn是什么?

          SVN的全称是subversion,SVN是版本版本管理工具,是CVS接班人,版本控制软件可以解决协助开发、远程开发和版本回退三个问题。

          特点:操作简单、入门简单、跨平台操作 。

          svn是输入C/S服务类软件,有客户端和服务端。

          下载地址

                服务端软件:(VisualSvn) http://www.visualsvn.com/

       客户端软件:(Tortoisesvn) client: http://tortoisesvn.net/downloads

 

2.SVN安装

  • svn服务端
    • checkout(检出)
    • update(更新)
    • Commit(提交、上传)

svn版本控制软件学习笔记

 

  • 服务端软件的安装(VisualSvn)

服务端软件存储于软件/服务器端

  • 1).双击服务端软件,安装按照教程一步步的安装即可 SVN安装教程 注意:安装的时候,不要出现中文、特殊符号即可。
  • 2).下一步继续.

svn版本控制软件学习笔记

  • 3).点击下一步

svn版本控制软件学习笔记

  • 4.下一步继续

svn版本控制软件学习笔记

  • 5).下一步继续

svn版本控制软件学习笔记

  • 6).下一步install

svn版本控制软件学习笔记

  • 7).下一步

svn版本控制软件学习笔记

  • 8).安装好的VisualSvn如下:

svn版本控制软件学习笔记

 

  • 服务器端配置工作:

         步骤一:创建一个项目

  • 首先在svn服务端创建一个公有目录WebApp做为项目目录.      
  • 在WebApp文件下简历Shop。目前还只是文件夹,还需要和svn产生联系

svn版本控制软件学习笔记

  • 创建版本仓库,基本语法

          svnadmin create Shop 文件夹路径(shop仓库)

svn版本控制软件学习笔记

  • 在DOS命令行下输入 svnadmin create Shop 文件夹,如果配置成功,那么Shop应该多了6个文件夹.

svn版本控制软件学习笔记

 

  • 步骤二:服务器监管:
  • Apache—> http://localhost:8080 或(ip地址)访问到htdocs目录下相关文件(监管)
  • SVN—> svn://localhost或(ip地址) 访问到相关的数据仓库(如shop仓库)

         基本语法如下:

         svnserve -d(后台运行) -r(监管目录)  仓库路径

         如:svnserve -d -r D:/SvnServer/WebApp/Shop

         通过以上指令,我们的svn://localhost或ip地址就可以直接指向shop版本仓库.

 

  • 步骤三:SVN的权限控制

默认情况下,svn服务器是不允许匿名用户上传文件到服务器端的,所以必须更改项目的相关配置文件.

svn的权限都在文件夹conf.

svn版本控制软件学习笔记

         打开svnserver.conf ,找到 #anon-access = read (19行)修改为 anon-access = write

 

4.SVN客户端的配置

  • 获取软件安装包(TortoiseSvn),确认操作系统位数.
  • 傻瓜式安装,注意:记得重启一下电脑即可,否则svn图标无法显示.
  • 出现如下图标,表示安装成功.
  • svn版本控制软件学习笔记
  • 还可以安装对应的汉化包.

双击运行语言包,系统会自动寻找之前TortoiseSvn软件安装目录,自动安装,安装后可以进行设置.

  • 配置完之后第一次牵手,使用客户端软件连接svn服务器:
    • 首先在你的项目目录鼠标右键->TortoiseSVN->版本浏览器->输入svn服务器地址

svn版本控制软件学习笔记

Svn:://svn服务器地址->shop项目(仓库)

或file:///D:/SvnServer/WebApp/Shop

  • checkout(检出)

svn版本控制软件学习笔记

 

  • 打开隐藏功能如果能看到.svn这个文件夹就说明客户端和服务端连接起来了,检出成功;

svn版本控制软件学习笔记

 

svn版本控制软件学习笔记

 

5.SVN 使用的详解

  • 三大指令
  • checkout 检出操作

1).连接到服务器

2).第一次链接的时候更新服务器端数据到本地.

注意:checkout只在第一次链接时操作一次,以后如果进行更新操作使用update更新指令.

svn版本控制软件学习笔记

  • commit提交代码.

svn版本控制软件学习笔记

 

svn版本控制软件学习笔记

  • update更新操作(右键更新操作即可自动更新最新版本到本地).

可以试试经理和新员工两操作实践.

 

  • 图标集的含义

svn版本控制软件学习笔记

  • 常规:表示服务器和客户端数据完全同步时;
  • 冲突:表示当客户端提交的文件与服务端数据有冲突,系统显示为冲突图标.
  • 删除:表示当服务器端数据已删除,那么客户端该文件将显示删除图标.
  • 增加:表示当我们编写文件已添加到提交队列,那么系统会显示增加图标.
  • 无版本控制:表示我们编写文件没有添加到上传队列.
  • 修改:表示客户端文件有修改但没提交.
  • 只读:客户端文件以只读形式存在时,将自动显示以上图标.
  • 锁定图标:服务器端已锁定,客户端显示忽略图标.
  • 忽略:客户端文件已忽略,不需要进行提交上传.

 

  • 忽略功能

      忽略功能就是有些文件不想分享到服务器,仅仅是给自己看的内容,应该将该文件或该类型文件添加至忽略列表

  • 忽略某个文件

svn版本控制软件学习笔记

  • 忽略某个类型的文件

svn版本控制软件学习笔记

 

  • 版本回退
  • 什么是版本回退?

有些时候,软件的运行可能使得开发者或使用者不满意,需要使得把当前版本退回至之前版本.

svn版本控制软件学习笔记

  • 每次修改的时候之后,提交的时候需要写好备注.

svn版本控制软件学习笔记

  • 但是我又想恢复到某个版本:
  • svn版本控制软件学习笔记
  • 可以根据日志的信息选择要回退的状态:

svn版本控制软件学习笔记

 

svn版本控制软件学习笔记

回退后效果如下:

svn版本控制软件学习笔记

再也不担心错误删除了吧,前提是需要commit你的代码.

 

  • 版本冲突
  • 什么是版本冲突?

在实际开发中,如果两个人同时修改某个 文件就会产生版本冲突问题.

  • 模拟冲突问题.

当两个人同时修改一份文档的时候就可能发生冲突

svn版本控制软件学习笔记

  • 模拟以上过程出现如下错误提示:

svn版本控制软件学习笔记

  • 避免版本冲突:

合理分配项目开发时间,比如错开开发时间

合理分配项目开发模块,比如错开开发模块

  • 通过svn解决版本冲突问题,步骤如下:
    • 更新服务器数据到本地

svn版本控制软件学习笔记

index.php: 表示整合后的index.php文件

index.php.mine: 表示小强修改后的index.php文件

index.php.r6: 表示09:00更新时的index.php(起始状态)

index.php.r7: 表示旺财修改后的index.php文件

  • 删除除index.php外的三个带问好的文件
  • 修改整合index.php冲突文件
  • 重新提交数据至svn服务器端,即可解决svn版本冲突问题.

 

6.配置多仓库与权限控制

  • 配置多仓库

在实际开发中,我们可能会同时开发多个项目,那么我们如何进行多项目监管呢?

通过svnserve进行仓库监管,但是监管指令只能监管某一个文件夹,而不能同时监管多个仓库.

:可以通过监管WebApp总目录来达到监管所有仓库的目的.

svnserve -d(后台运行) -r(监管目录)  WebApp项目总目录

打开Dos窗口输入如下指令:

svn版本控制软件学习笔记

svn://localhost 或ip地址来访问D:/svn/WebApp目录

如果需要访问shop项目或webchat项目:

shop项目: svn://localhost/Shop

Wechat项目: svn://localhost/Wechat

 

  • 权限限制
  • 如果需要使用权限控制有一个前提:必须首先开启权限功能.

在每一个仓库中都有一个conf文件夹,里面有三个文件,如下:

  • authz: 授权文件,告诉用户有哪些权限
  • Passwd: 认证文件,标识当前svn系统中某个仓库具有哪些用户及相应的密码.
  • 默认情况、以上两个文件都是禁用的,必须要开启上面两个文件,svnserve.conf配置文件,具体开启步骤如下:
    • 注释匿名用户可读写的权限:

svn版本控制软件学习笔记

  • 开启认证文件和授权文件

svn版本控制软件学习笔记

  • 编写认证文件,定义用户和密码:打开passwd

svn版本控制软件学习笔记

  • 编写授权文件:打开authz文件进行分组+授权

svn版本控制软件学习笔记

  • 测试是否成功.

svn版本控制软件学习笔记

 

 

7.svn的配置和管理

  • 配置服务器的自启动服务

sc create SVNService binpath = “D:\SvnServer\bin\svnserve.exe --service -r D:/svnroot” start= auto

在cmd中输入相关命令: sc create 服务名称 binpath="svnserve.exe --service -r D:/svn/WebApp" start=空格 auto

创建系统服务,服务名SVNService

  • 步骤如下:
  • 打开运行,输入cmd,打开DOS环境(请使用超级管理员)

输入以下指令:

svn版本控制软件学习笔记

  • 在控制面板->管理工具->服务找到SVNserver

svn版本控制软件学习笔记

  • 双击运行,启动SVNService

svn版本控制软件学习笔记

  • 运行成功,svn监管服务开发成功(以后就不用每次开机还要去Dos下输入指令启动服务器啦)

 

  • 使用批处理文件来停止和开启管理器
  • 启动服务:net start 服务名称,比如:start.bat文件内输入net start SVNService
  • 停止服务:net stop 服务名称
  • 删除服务:sc delete 服务名称

以上功能在实际项目开发中经常使用,封装成为xxx.bat文件就可以减少很多工作量.

svn版本控制软件学习笔记

 

8.模拟真实场景(重难点)

  •  svn工作流程

svn版本控制软件学习笔记

  • 什么是钩子程序?
  • 所谓钩子就是与一些版本库事件触发的程序,例如新修订版本的创建,或是未版本化属性的修改.
  • 默认情况下,钩子的子目录(版本仓库/hooks)中包含各种版本库钩子模板.

svn版本控制软件学习笔记

post-commit.tmpl: 事物完成之后触发的钩子程序

钩子程序默认情况用批处理或者Shell指令来进行编写.

  • 通过批处理指令编写钩子程序步骤:
    • 指定svn服务端工作目录

设置服务端SVN路径:SET SVN="D:\SvnServer\bin\svn.exe"

  • 指定web服务器工作目录

设置服务器端项目运行目录:SET DIR="D:\SvnServer\WebApp\Shop"

  • 通过update指令实时更新数据到DIR目录中.

SVN update %DIR%

  • 具体使用步骤:
    • 第一步:复制post-commit.tmpl为post-commit.bat文件

svn版本控制软件学习笔记

  • 第二步:填入相关批处理指令

svn版本控制软件学习笔记

  • 第三步:在apach目录下创建Shop项目并更新SVN服务器端数据到本地.
  • 第四步:更新文件到SVN服务器端,可以在Shop目录实时获取到最新数据.
  • 第五步:可以通过虚拟主机形式直接访问更新文件.

svn版本控制软件学习笔记

 

9.SVN扩展程序

  • 什么是BAE云引擎
  • 百度应用引擎(BAE),是百度推出的网络应用开发平台。基于BAE架构,使开发者不需要维护任何服务器,只需要简单的上传应用程序,就可以为用户提供服务.
  • 开发者可以基于BAE平台进行PHP、java、python、nodejs应用的开发、编译、发布、调试.

 

  • 如何使用BAE云引擎

svn版本控制软件学习笔记

 

svn版本控制软件学习笔记

  • 进入部署列表(BAE管理平台)

svn版本控制软件学习笔记

步骤如下

1).添加部署

svn版本控制软件学习笔记

单击确定,创建成功如下图所示:

svn版本控制软件学习笔记

 

svn版本控制软件学习笔记

单击管理控制平台,如下图所示,则部署成功:

svn版本控制软件学习笔记

 

svn版本控制软件学习笔记

2).SVN管理

svn版本控制软件学习笔记

通过svn进行检出操作(之后可以向svn服务器中添加或下载相关数据)

svn版本控制软件学习笔记

 

svn版本控制软件学习笔记

 

svn版本控制软件学习笔记

3),提交服务(commit)

当我们的BAE服务器有数据更新时,系统会弹出以下提示:

svn版本控制软件学习笔记

单击快捷发布即可.

svn版本控制软件学习笔记