1.SVN是什么?版本控制工具
全称:Subversion
版本控制工具:CVS→SVN→GIT
SVN主要在传统开发团队使用
CRM:客户关系管理系统
ERP:企业资源计划
OA:自动化办公
PDM:产品设计管理
……
GIT主要在互联网开发团队使用
微信
京东
淘宝
陌陌
12306
……
2.版本库
①作用:存放客户端提交的文件数据
②创建步骤
[1]手动创建一个普通的目录
[2]执行svnadmin create 版本库目录的路径
[3]创建成功后出现的新目录和新文件
3.启动服务器端程序
①命令行方式:svnserve -d -r 版本库根目录
缺陷:必须始终保持命令行窗口开启
②验证:查看3690端口是否被监听
③单仓库/多仓库
[1]单仓库:启动SVN服务器时就将要使用的版本库固定了。例如:上面命令中就限定死只能访问CRM库,不能另外访问ERP或其他版本库。
[2]多仓库:启动SVN服务器时不指定到具体版本库本身,而是具体版本库的上一层目录。这样,客户端可以灵活的切换各个版本库。
svnserve -d -r D:\RepSVN
[3]客户端访问服务器端时使用的URL地址
单仓库:svn://localhost 只能访问CRM
多仓库:svn://localhost/CRM 通过URL地址灵活切换
多仓库:svn://localhost/ERP
④注册为Windows服务
[1]Windows服务是由C:\Windows\SysWOW64\sc.exe程序管理的。体现在命令行中是sc命令
[2]sc命令的子命令
sc create [服务名] 创建服务
sc stop [服务名] 停止服务
sc start [服务名] 启动服务
sc delete [服务名] 删除服务
[3]sc create命令的用法
sc create SVNService binpath= "D:\DevInstall\Subversion\bin\svnserve.exe --service -r D:\RepSVN" start= auto depend= Tcpip
4.从命令行访问服务器
①检出
[1]命令:svn checkout svn://服务器端实际地址/具体版本库 保存检出结果的目录
[2]效果:创建一个隐藏的.svn目录。这个目录中保存了当前工作副本和服务器端交互过程中的重要信息。
[3]工作副本:包含.svn目录的目录
②提交
[1]命令:svn commit
[2]注意:进入到工作副本中执行
[3]执行提交操作前,要求被提交的文件已经加入到版本控制体系中
svn add 文件名
[4]需要使用-m参数指定日志信息,作用是记录本次提交所做的修改
[5]还必须具备相应的权限
到当前连接的版本库的conf目录下,找到svnserve.conf,打开匿名访问设置
原来:# anon-access = read
现在:anon-access = write
注意:键值对必须顶格,前面不能有空格
[6]最终的命令形式
svn commit -m 日志信息 要提交的文件
svn commit -m "My First Commit" Good.txt
③更新
svn update
△以下为重点
5.在Eclipse中使用SVN
①安装插件:详细步骤 自行百度 在此不做赘述
②创建工程:还是和以前一样的方式创建,创建后分享到SVN服务器上
在工程上点右键→Team→share project
③其他人通过检出的操作从服务器获取这个工程
File菜单→import→svn→从svn检出项目
④build目录
[1]作用:存放编译得到的.class字节码文件
[2]不应该加入版本控制体系,原因是不同开发人员对源程序的编译可能有出入。
[3]排除的操作步骤:build目录上点右键→team→添加至:svn:ignore
6.冲突
①冲突的产生
[1]过时的文件:在一个旧版本文件的基础上做修改,这个文件就会过时。
[2]过时的文件不能提交,必须先更新再提交
[3]文件过时不一定冲突,但是冲突一定是先过时
不冲突:在不同位置不一致
冲突:在相同位置不一致
②冲突的表现
③冲突的解决
冲突文件上右键→Team→编辑冲突→在对比窗口中修改→修改完成后关闭对比窗口
冲突文件上右键→Team→标记为解决→OK
④冲突的避免
[1]尽量在修改文件之前执行更新操作,在最新版的基础上修改,避免文件的过时
[2]尽量减少多人同时修改同一个文件的可能性
[3]加强团队沟通
7.权限 (注意:是版本库的配置文件)
①版本库中与权限设置相关的文件介绍
[1]svnserve.conf:总体配置
[2]passwd:管理用户名密码
[3]authz:分配权限
8.查看资源历史记录
右键 team –> 显示资源历史记录
①条目不可读错误
解决办法:将版本库中conf目录下的svnserve.conf文件中的匿名访问设置为none
②版本回溯
选取其中你想要回溯的版本,再右键点击获取内容即可