Svn笔记

Svn笔记

文章目录

一、Svn简介

1.1、什么是Svn

SVN是Subversion的简称,是一个开发源代码的版本控制系统,相较于RCS、CVS,它是采用了分支管理系统,它的设计目标就是取代CVS。互联网上很多版本控制服务已从CVS迁移到Subversion。说得简单一点SVN就是用于多个人共同开发同一个项目,共用资源的目的。

1.2、Svn的使用

1.2.1、如果没有SVN团队开发会出现什么问题?

Svn笔记

使用Svn以上问题都可以解决

1.3、常见的版本控制工具

1.3.1、VSS:微软的,主要应用在微软的平台

1.3.2、CVS:早起的版本控制工具

1.3.3、SVN:取代CVS

1.3.4、Git:和SVN差不多,比较火的版本控制工具

二、Svn服务端安装

2.1、官网下载Windows系统的Svn服务端

Svn服务端下载地址:

2.2、安装Svn服务端步骤

Svn笔记

Svn笔记

Svn笔记

Svn笔记

Backups:备份,可任意选择备份

Svn笔记

2.3、Svn服务端使用【鼠标操作】

Svn笔记

Svn笔记

Svn笔记

Svn笔记

Svn笔记

Svn笔记

Svn笔记

Svn笔记

2.4、Svn服务端使用【命令行操作】

Svnadmin create [仓库名]

Svn笔记

Svn笔记

目录结构:

conf 存放当前仓库的配置文件
db 存放仓库版本的控制文件
hooks 仓库脚本
locks 锁文件

svnserve -d -r 路径 启动服务

Svn笔记

修改仓库配置

Svn笔记

三、Svn客户端安装

3.1、官网下载Svn客户端安装包

Svn客户端下载地址:https://tortoisesvn.net/downloads.html

Svn笔记

3.2、官网下载Svn客户端语言汉化包

Svn客户端汉化包下载:https://tortoisesvn.net/downloads.html

Svn笔记

根据自己的电脑适配 32Bit还是 64Bit的

3.3、安装Svn客户端以及简单操作使用

Svn笔记

Svn笔记

Svn笔记

3.3、安装Svn客户端语言汉化包,并且设置汉化语言

Svn笔记

安装完成之后,又可能自动设置汉化语言,又可能自己设置汉化语言

Svn笔记

Svn笔记

如果Svn的状态图标不显示的话,就重启下电脑或者查看注册表

Svn笔记

四、Svn三大指令操作【Checkout、Update、Commit】

1、回顾Svn三大指令:

1.1、(Checkout) 检出操作

  1. 链接到SVN服务器端
  2. 更新服务端数据到本地
  • 注意:Checkout只在第一次链接时操作一次,以后如果进行更新操作请使用Update指令

1.2、(Commit)提交操作:

提交本地数据到服务器端

2、模拟项目经理初始化项目

2.1、在目录创建一个Svn服务器端的仓库:shop

Svnadmin create shop

Svn笔记

修改仓库shop->conf->snserve.conf配置文件

Svn笔记

启动服务:

svnserve -d -r F:\Note\shop --listen-port 8087

2.2、在别的目录下创建一个jingli的目录

Svn笔记

Svn笔记

Svn笔记

Svn笔记

Svn笔记

初始化项目并且提交:

Svn笔记

Svn笔记

以上工作大部分是由项目经理完成的,那么如果公司新来一个程序员(李四),他的工作是怎么样操作的那???

2.3、在目录下创建一个叫lisi的目录

检出操作,效果如下:

Svn笔记

Svn笔记

那么如果假设李四第一天的组长给李四一个模块让李四开发编代码,到下班了李四要提交代码了,这时候就要用到Commit这个提交指令了

李四的一天工作量:

admin.java

package com.lisi.admin

/**
 后台管理系统登录接口
*/
public class admin{
	public static void main(String[] args){
		System.out.printIn("我是李四")
	}
}

Svn笔记

假设李四提交完一天写的代码了,项目经理想看看这个新来的程序员李四的编码能力,这时候就要用到Update指令了

Svn笔记

Svn笔记

项目经理心里窃喜:小伙子编码能力还需要多磨练,先干着把

五、Svn图标集与忽略

5.1、Svn图标集

1.1、常规图标集

Svn笔记

含义:当客户端文件与服务器端文件完全同步时,系统显示以上图标

1.2、冲突图标

Svn笔记

含义:当客户端提交的文件与服务器端数据有冲突,系统会显示以上图标

1.3、删除图标

Svn笔记

含义:当服务端数据已删除,那么客户端该文件将显示以上图标

1.4、增加图标

Svn笔记

含义:当我们编写文件已添加到提交队列,那么系统将自动显示以上图标

1.5、无版本控制图标

Svn笔记

含义:当我们编写的文件没有添加到上传队列时,系统将自动提示以上图标

1.6、修改图标

Svn笔记

含义:当客户端文件有修改但未提交,此时将自动显示以上图标

1.7、只读图标

Svn笔记

含义:当客户端文件以只读形式存在时,将自动显示以上图标

1.8、锁定图标

Svn笔记

含义:当服务端数据已锁定,那么客户都安文件将自动显示锁定图标

1.9、忽略图标

Svn笔记

含义:客户端文件已忽略,不需要进行提交上传,那么将自动显示以上图标

5.2、Svn忽略功能

假设项目提交的时候不想提交此文件,效果如下:

Svn笔记

假设有超过多个类似.txt文件,实际项目中不可能一个一个点一个一个忽略

Svn笔记

Svn笔记

六、Svn版本回退

6.1、什么是版本回退

有些时候,软件的运行可能使开发者或使用者不满意,这时我们需要把当前的版本回退到以前的某个版本

Svn笔记

6.2、Svn版本回退功能

假设程序员写了一段代码,发现写完的代码自己看着贼不顺眼,并且昨天提交完代码,今天把代码删除了。

Svn笔记

这时候项目经理说:你的代码已经提交了,我还没有查看,你就给删除了,我刚才看着还有,但是我还没审核,你抓紧把代码回退一下

Svn笔记

Svn笔记

Svn笔记

Svn笔记

这时候程序员重新回退了这个代码,项目经理更新,查看这名程序员写的代码

Svn笔记

七、Svn版本冲突问题

7.1、什么是版本冲突

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

7.2、模拟版本冲突

假设项目开发组有两个程序员开发同一个项目。

Svn笔记

1、在目录下创建一个叫:wangcai的目录,假设这是旺财的电脑并且这个目录是旺财开发的模块

需求如下:上午9:00上班,需要检出

旺财9:30提交代码

2、在目录下创建一个叫:xiaoqiang的目录,假设这是旺财的电脑并且这个目录是小强开发的模块

需求如下:上午9:00上班,需要检出

小强10:00提交代码

综上所述:两个人每天早上上班同一件事情:就是拉取代码,并开发功能,可能只不过旺财老员工,编码能力强,对业务比较熟悉,所以很快提交代码,而小强那公司新员工不熟悉业务,但编码能力还可以,所以提交代码相对于比较慢一些

3、小强提交出现冲突

Svn笔记

4、解决冲突问题方法

4.1、合理分配项目开发时间

  • 旺财 上午开发
  • 小强 下午开发

4.2、合理分配项目开发模块

  • 旺财 购物车模块
  • 小强 文章模块

4.3、通过Svn解决版本冲突问题

  • 更新服务端数据到本地

Svn笔记

echo.php:整合后的echo.php文件

echo.php.mine:小强修改后的echo.php文件。

echo.php.r16:是09:00更新时的文件【起始状态】

echo.php.r17:旺财修改后的文件

4.4、要想解决冲突,必须删除除echo.php以外的三个文件

八、Svn配置服务与管理

8.1、配置自启动服务

sc create SVNService binpath="D:\subversion\bin\svnserve.exe --service -r D:/svnroot" start=auto

分析以上命令:

sc create 服务名称 binpath=空格“svnserve.exe -service -r D:/svn/WebApp” start=空格 auto

8.1.1、打开运行,输入cmd指令,打开DOS坏境(请使用超级管理员运行)

8.1.2、输入以下指令

Svn笔记

8.1.3、查看系统服务

控制面板管理工具服务

Svn笔记

双击运行,启动SVNService服务

Svn笔记

如果运行成功代表开启SVN监管服务

8.2、创建批处理文件

启动服务:net stat 服务名称

停止服务:net stop 服务名称

删除服务:sc delete 服务名称

以上功能在实际项目开发中经常使用,所以可以封装为.bat批处理文件。

九、Svn模拟真实环境开发

9.1、Svn工作流程

Svn笔记

9.2、钩子程序

所谓钩子就是一些版本库事件触发的程序,例如新修订版本的创建,或是未版本化属性的修改

默认情况下,钩子的子目录(版本仓库/hooks/)中包含各种版本钩子模板

Svn笔记

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

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

9.3、通过批处理指令编写钩子程序

9.3.1、指令svn服务端工作目录

设置服务端SVN路径

SET SVN = "D:\svn\bin\svn.exe"

9.3.2、指定web服务器工作目录

设置服务器端项目运行目录

SET DIR = "D:\server\apache\htdocs\shop"

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

SVN update %DIR%

9.3.4、具体使用步骤

第一步:复制 post-commit.tmpl为post-commit.bat文件

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

Svn笔记

第三步:在apache目录创建Shop项目并更新SVN服务端数据到本地

Svn笔记

第四步:更新文件到SVN服务器端,可以在Shop目录实时获取到最新数据

1)在D盘创建lisi的目录方便演示

Svn笔记

Svn笔记

Svn笔记

第五步:可以通过虚拟主机形式直接访问更新文件

略…

上一篇:Swagger2的使用


下一篇:JDK KRE