一、简介

二、windows下svn的开启与关闭

三、svn中五种图标代表的含义

四、案例

删除服务器文件

 历史版本的找回

五、权限控制

我们来看看默认情况下匿名用户能做哪些事:

 

 

 

 

匿名用户可以查看svn的代码库,这是一个很严重的问题

匿名用户不仅可以查看,还可以将svn代码库中的内容checkout下来

 

幸运的是,svn默认不允许匿名问题commit

 

现在要做的,禁止匿名用户

 

 

 

 

修改配置文件 代码库下 vi conf/svnserve.conf

 

 

改为

 

 

再来看看匿名用户的操作

 

 

实现了对匿名用户的限制操作

———————————————— 华丽的分隔线 ——————————————

sc create SVNService binpath= "E:\Subversion\bin\svnserve.exe --service -r E:/server"

server即为版本库 该版本库中又一个项目,现在来对其进行权限控制

project

      a

            aa.php

      b

            bb.php

      c

      a.php

      b.php

权限分配时,应遵守从根目录到子目录、从设置最广泛权限到最精细权限、从只读权限到读写权限设置原则,即从根目录开始设置最广泛的访问权限,然后逐步设置下属子目录的访问权限

现有用户 admin,user1,user2

所有的用户对项目下的所有文件都有读的权限

admin能够对所有的文件进行读写

user1 只能对a目录下的文件进行读写

user2 只能对b目录下的文件进行读写

进行配置:

首先编辑配置文件 vi svnserve.conf

20行 password-db = passwd

17行 authz-db = authz

前面的#去掉 意思是开启用户登陆及用户权限配置

打开版本库中conf目录下的passwd

打开版本库中conf目录下的auth

[groups]
project1 = admin

[/]
* = r
@project1 = rw

[/a]
user1 = rw

[/b]
user2 = rw

————————————— 历史版本的找回 ———————————————

 

——————————— 版本冲突的解决 ———————————————

我用user1、user2做实验

首先来看看什么样的情况下会发生版本冲突:其实也就一句话,试图用低版本的文件去覆盖高版本的文件

我先把user1、user2两把的版本统一一下

 

 

 

 

现在开始在user1中修改一个文件,但是不进行commit

 

 

现在开始在user2中修改同名文件,并上传

 

 

可以理解为 两个人同时修改同一个文件,user2先改好然后上传了,然后user1也修改好并进行上传,这时候就会出现版本冲突

 

 

这时候可以选择update 与版本库的版本进行统一,放心,他不会覆盖你修改的文件,会自动生成多个版本的文件

我一般

 

直接进行修改

 

 

当然,实际开发中需要user1,user2协商好

六、windows下设置开机自启动

sc create svnserve binpath= "E:\Program Files\Subversion\bin\svnserve.exe --service --root E:\server"