1、开发中的需求
- 备份
- 代码还原
- 协同修改
- 多版本项目文件管理
- 追溯问题代码的编写人和编写时间
- 权限控制
2、版本控制简介
版本控制(Revision control),最初来源于工程设计领域,是维护工程蓝图的标准做法,能追踪工程蓝图从诞生一直到定案的过程。是一种记录若干文件内容变化,以便将来查阅特定版本修订情况的系统
Subversion是一款实现版本控制的工具软件,称为版本控制器,简称SVN
3、Subversion的优点
- 目录版本控制:可以追踪整个目录树的修改
- 原子提交:提交要么完全进入版本库,要么一点都没有
- 版本控制的元数据:每个文件和目录都有一组附加“属性”
- 可选的网络层:使用HTTP的变种协议WebDAV/DeltaV通讯
- 一致的数据处理:对于文本和二进制文件具备一致的操作方式
- 高效的分支和标签:建立分支与标签只是复制项目,类似于硬链接
4、SVN的工作原理
采取客户端/服务器模式,服务器的版本库中保存项目文件的各个版本,程序员在本地电脑上保存一个工作副本,支持将本地副本更新到服务器端的最新版本,后面的更新不会覆盖前面的更新,而是一个新的版本,也可以将本地副本恢复为服务器端保存的某一个历史版本。
5、SVN基本操作
- 检出(checkout):将服务器上的项目下载到本地,参与开发第一步,只需执行一次
- 更新(update):将本地文件更新为服务器端的最新版本,上班时或修改公共文件之前执行一次
- 提交(commit):将本地修改提交到服务器端,下班前或每实现一个功能、完成一个模块时执行一次
6、Subversion安装与配置
安装服务端程序
Setup-Subversion-1.8.9-1.msi
已经自动配置好了环境变量
测试是否安装成功
配置版本库
Subversion将文件数据信息保存到版本库中进行管理
新建一个文件夹放OA、CRM、ERP等项目
创建版本库
版本库目录结构
启动服务器
- 命令行方式
-d 表示后台执行
-r 表示版本库根目录
验证服务是否启动
打开新的命令行窗口,netstat -an查看3690端口是否被监听
关闭服务器启动的命令行窗口后,服务器就停止了
- 注册为Windows服务
让SVN服务随系统一起启动
==以管理员方式启动命令行==
C:\Windows\system32>sc create MySVNService binpath= "D:\Program Files (x86)\Subversion\bin\svnserve.exe --service -r D:\javaDevelopTools\SvnRep" start= auto depend= Tcpip
[SC] CreateService 成功
C:\Windows\system32>
注册windows服务需要执行文件sc.exe,不是svn的命令
注意:==等号左边没有空格,右边有一个空格==
D:\javaDevelopTools\SvnRep 可以为多个项目服务
D:\javaDevelopTools\SvnRep\CRM 只能为一个项目服务
根据需要自行切换项目
查看创建的MySVNService服务
启动服务
查看监听的端口
停止服务,删除服务
客户端操作
服务器是启动状态的
在工作目录取出指定的OA系统,在Jerry文件夹中检出
就会有和服务器端进行交互的信息
新建一个文件
提交该文件,提交失败(需要投名状)
将该文件加入版本控制
再次提交,需要添加提交的信息说明
添加后提交
修改版本库中的权限
将匿名权限的注释关闭,改为可写的权限,保存
提交
在Tom文件夹检出
Tom修改该文件
提交
更新Jerry中的文件
7、在Eclipse中使用SVN
复制插件的安装包到eclipse的dropins目录
也可以在线安装
重启eclipse
查看是否安装成功
组长将项目上传到SVN服务器使用
新建一个类
将这个项目上传到SVN服务器
创建SVN服务器资源地址
填写SVN服务器的地址,指定到了OA
切换到同步视图,将项目中的哪些文件上传
这里上传整个项目,点击提交
填写日志,点击ok
回到项目
查看SVN服务器上的文件
打开一个新的视图
上传Web项目时,build文件夹中的编译内容不包含进SVN服务器,检出时也不需要build文件夹
组员从SVN服务器检出
从另一个工作区打开eclipse
import
创建资源库地址
忽略build文件夹
提交
填写日志
更新
仓库目录分析
8、冲突
Jerry修改了代码并进行提交
Tom未更新就进行了修改并提交
发生冲突
产生冲突的原因
此时Tom进行更新
产生的几个新文件
自己的
冲突之前服务器的
发生冲突时服务器的版本
解决冲突
修改左边视图,保存
标记解决
提交
如何减少冲突
在修改一些公共文件时先进行更新,在最新版本上进行修改
9、权限
打开配置文件
修改配置文件
打开passwd文件,新建用户
打开authz文件设置具体权限
测试提交修改后的代码,需要用户名和密码,cheshi用户可以检出
10、代码还原
需要修改配置文件中匿名用户为none
anon-access = none
获取内容
提交
11、小乌龟客户端
安装后