一、SVN的安装:
1、SVN分为客户端和服务器端,一般情况下我们只需要安装客户端即可,将本地副本上传到服务器的仓库中;但是我们为了学习,也可以装上服务端。
SVN服务端下载地址:http://yunpan.cn/cgE99v2mZDW8h 提取码 22ab
TortoiseSVN下载地址:http://yunpan.cn/cgE9ELtaNchMK 提取码 f99e
2、 验证服务端是否安装成功:在cmd 中输入 svn --version 如果出现版本信息,则表示安装成功。
3、创建一个版本仓库:
svnadmin create 版本仓库的路径 比如:svnadmin create E:\\svn_home 这样, 在E盘下就会生成一个文件夹svn_home,这个就是创建了svn服务端的仓库。
4、启动SVN服务:
cmd中输入 svnserve -d -r 仓库路径 可以使用svnserve --help查看参数。 注意,这里的 -d 在window中无效。
5、注册window服务:
安装完svn服务端后,默认是没有写入window服务的,这样,我们每次使用到svn时,都要用上面的方式启动,比较麻烦,我们可以将其写入window服务,写入 window服务需要是window管理员权限才行,注意下面的 sc 命令是window命令,不是svn的命令。
sc create 服务名 binPath= "服务程序路径 --sevice -r 仓库路径 --listen-port 端口号" displayName= "逻辑名(显示名)"
比如:sc create svnbinPath="D:\SVN\server\bin\svnserve.exe --service -r e:\svn_home --listen-port 3690" DisplayName= “svn“
l 参数:binPath:是svn的安装目录再加svnserve.exe程序,
l --service -r :指定svn仓库的路径,上面是e:\svn_home
l --listen-port:指定此服务的端口号,不写的话默认为3690.
l displayname:是服务显示名,如果不写,默认会和服务名一样。
上面注册后,进入window服务,就可以找到svn这个服务了。如果要删除这个服务,可以在cmd中执行 sc delete 服务名 即可删除指定的服务。
6、 TortoiseSVN安装:下载后安装即可,安装后会在右键菜单中显示TortoiseSVN的菜单
第一次将一个文件夹import到svn仓库时,会提示认证失败的错误,这表示你没有权限上传文件,需要在你的仓库中修改配置,新增用户。
比如我的svn仓库安装在E:\\svn_home文件夹下,这个文件夹中会有conf文件夹,conf文件夹中会有svnserve.conf配置文件和passwd文件,
在svnserve.conf文件中修改配置:
将第12行、13行、20行的配置前面的(# )注解去掉,记得前面的空格也要去掉;
anon-access = read表示没有权限只能读,为默认值,其值有none,write,read
auth-access = write表示有权限可以写 ,为默认值
password-db = passwd 表示启动passwd这个配置文件
在passwd配置文件中修改配置:
在最后新增用户名,格式为:用户名 = 密码,比如:user=user 这里可以根据需要配置多个都可以。
通过以上配置后,就不会再有认证失败的错误出现了。
如果出现拒绝访问的错误,表示你的svn服务没有开启,请开启svn服务。
二、Tortoise常用的一些子命令:
import:将未纳入版本控制器的文件或目录提交到版本库中,一般只会在第一次提交时使用。
checkout:从版本库标签中下载指定版本的工作副本,默认为最新版本。
revert:将本地工作副本回复到原始版本。
update:将版本库中修改的合并到工作副本。
commit:将本地工作副本提交到版本库中。
add:添加,比如你新建了一个文件,svn并不知道是什么文件,因为在仓库中并没有,这时你可以使用add命令
三、svn冲突:当你提交文件的过程中出现了冲突,图标会变为黄色的感叹号,表示受到了冲突,冲突是指团队协同工作时,多个团队成员同时修改同一个文件面导致无法提 交的情况,这时我们需要先选择更新操作,可以将冲突文件下载到本地,会有3个文件;
比如:index.jsp文件,有两个成员同是修改过,A成员提交成功后,B成员再提交时就会发发冲突,提交不上去,B同学可以先选择update操作,会出现3个文件,分别为
index.jsp.mine(B成员修改的文件) index.jsp.r8(第8个版本,也就是早上一起下载的那个版本) index.jsp.r9(第9个版本,A成员提交的版本)
选中index.jsp(带有黄色感叹号的文件)-----------》右键———》TortoiseSVN——》Edit conflicts ,会出现如下窗口:
我们就可以在上面窗口中进行编辑,
选中红色的那一行,右键——》以下四个选项,根据需要选择:
use this test block(使用这个测试块)
use this whole file(使用整个文件)
use test block from “mine” before “theirs”(mine在我之前)
use test block from “theirs” before “mine”(mine在我之后)
选中设置好后,最下面的Merged - index.jsp中红色部分的那些问题就会被替换,再选择下面红色圈中的按钮即可
完成后关闭此窗口,发现刚刚生成的那3个文件不在了,此时再提交即可成功。
上面是一种方法,还有一种方法:就是用revert放弃所做的修改,如果你这样做的话,我们今天所写的代码都会没有了。所以不要这么!
关于冲突的建议:
1.修改文件之前,先进行一次update操作;
2.修改完成之后,及时commit,不要在本地停留过长时间;
3.在团队成员协同时,尽量不要修改不属于自己的文件。
四、svn锁:
可以查看SVN锁解释.htm