SVN简单概述及使用
(相关资料图)
SVN安装
下载地址:http://subversion.apache.org/packages.html#windows
安装步骤:一路NEXT就可以了
SVN图形化界面安装
按照自己的电脑配置下载
安装过程:一路NEXT就可以了
SVN安装是否成功
打开DOS窗口,输入svnadmin –version 回车,查看是否安装成功
SVN 基本目录结构
bin – 可执行的二进制文件iconv – 字符集编码的文件licenses – 许可证协议share – 本地语言转换
创建SVN的仓库
使用图形化界面的方式来创建
右键 -> TortoiseSVN -> Create repository here
基本目录结构
* conf -- 配置文件(重点的配置文件) * svnserve.conf -- SVN的配置文件 * passwd -- 用户名和密码的文件 * authz -- 权限认证的文件* db -- 版本数据存储目录* hooks -- 存放版本库勾子目录* locks -- 存储库锁目录,用来跟踪库的访问者
SVN简单配置 自启动管理
启动多仓库
svnserve -d -r C:\Repositories
设置自启动
sc create SVN-Service binpath= “C:\Program Files (x86)\Subversion\bin\svnserve.exe –service -r C:\Repositories” displayname= “SVN-Service” start= auto depend= Tcpip
按照自己安装条件更改路径
SVN安装地址:C:\Program Files (x86)\Subversion\bin\svnserve.exe 仓库地址: C:\Repositories
SVN简单操作
选择 svn checkout – 检出(第一次都需要检出资料,和svn的服务器取得同步)
svn的默认端口号是3690,使用协议:svn://localhost:3690/crm来检出内容
创建文件,出现一个蓝色的 ? 号,说明该文件还没有被svn所管理,需要手动添加该文件。右键->TortoiseSVN->点击 add 完成添加
出现蓝色的 + 号,说明已经被svn管理了,但是没有与svn服务器同步
选中,右键点击提交,就可以与svn同步了
SVN配置用户
步骤一:找仓库中的conf/svnserve.conf
步骤二:修改配置文件
* anon-access = none -- 匿名用户没有权限。(取值:none/read/write) * auth-access = write -- 认证用户有读写权限* password-db = passwd -- 让passwd的文件生效* authz-db = authz -- 让authz的文件生效
步骤三 :打开passwd文件:设置用户名和密码
user1=123user2=123
步骤四 :打开authz文件:设置用户的权限
[groups]crmGroup=user1,user2[/]@crmGroup=rw* =
例如:
添加用户lgx,tom,timi,密码都为123,都有读写能力
SVN解决冲突
由于SVN默认使用版本号来管理版本的(类似于乐观锁),当两个人都修改了同一个文件,然后一个先提交了,后提交的用户就会产生冲突。。
例子:
模拟冲突,以及冲突的解决
1.创建使用两个用户tom,lgx获取仓库,在tom中创建User文件,并提交,文件内是空白的
2.lgx update仓库 tom更改文件,lgx也更改文件
3.tom 先提交,没有报错
4.lgx提交
这时候冲突问题就出现了
解决方法:1. 先更新lgx仓库,会多出几个文件
删除多出的文件
3.打开冲突文件
<<<<<<< .mine 标注的就是自己的文件
>>>>>>> .r34 标注的是服务器文件 r34表示版本信息
根据实际情况更改冲突处
4.更改完后,提交就可以了,这样冲突就解决完成
基本步骤
* 先更新,然后删除掉多余的内容* 再重新提交
Eclipse 使用 SVN插件
使用Eclipse直接安装插件 HELP -> 最后一个 -> 查找安装
Eclipse 使用SVN
1.添加SVN资源研究院
2.上传项目到仓库 新建动态web项目demo01 如果为创建过位置的时候就选择,否则就选择已有的资源位置
接下来会连续输入四次用户名和密码
提交到仓库
Eclipse 导入SVN仓库项目
选择SVN资源研究院
新建资源位置成功后
选择需要导出的项目,右键,检出为
Finish,即可发现已经导出成功
Eclipse SVN冲突解决
1. 在demo01添加User类,添加代码,然后提交:添加代码:
package com.fjut;public class User { public static void main(String[] args) { }}
2.demo02更新
右键 -> 与资源库同步 -> 选择需要更新的文件 -> 右键 -> 更新
即可更新成功
3.demo01和demo02同时修改User类
demo01:
demo02:
4.demo01先提交,demo02后提交,然后demo02出现版本冲突错误
5.解决冲突1)demo02先与资源库同步 2) 右键 与资源库同步 3) 选择发生冲突文件 右键 -> 更新 4 ) 根据自己的情况合并 5) 右键->标记为解决,提交