SVN学习记录2

SVN图标集与忽略功能

1.查看图标集

常见图标集

1)常规图标(normal):当客户端文件与服务器端文件完全同步时,系统显示该图标;

2)冲突图标(conflcted):当客户端提交的文件与服务器端数据有冲突,系统会显示该图标;

3)删除图标(deleted):当服务端数据已删除,那么客户端该文件将显示该图标;

4)添加图标(added):当我们编写的文件已添加到提交队列,那么系统将自动显示该图标;

5)无版本控制(non-versioned):当我们编写的文件没有添加到上传队列时,系统将自动提示该图标;

6)修改图标(modified):当客户端文件有修改但未提交,此时将自动显示以上图标;

7)只读图标(readonly):当客户端文件以只读形式存在时,将自动显示以上图标;

8)锁定图标(locked):当服务端数据已锁定,那么客户端文件将自动显示该图标;

9)忽略图标(ignored):客户端文件已忽略,不需要进行提交上传,那么将自动显示该图标。

2. 忽略功能

有些文件不希望上传至svn服务器,应该将该文件或该类型的文件添加只忽略列表

2.1忽略某个指定的文件

 2.2忽略某类型文件

SVN版本回退

1.什么是版本回退

有时候,软件的运行可能使开发者或使用者不满意,这时我们需要把当前版本回退到以前的某个版本

 2. 版本回退功能

1. 假设项目经理在某次操作中删除了Common.php文件

 2. 事后却发现该模块还有很多功能有需求,这时候我们可以借助SVN的Update to revision功能

 3. 点击后出现如下对话框

 4.点击Show log,根据日志信息选择要回退的状态即可

 

 5. 回退到删除操作之前的版本即可,效果图如下

注意:在实验的过程中,可能因为自己不小心的一些误操作出现过一些bug,本人就在做demo的时候碰到两个问题。
1. SVN查询log出现"offline for now, Permanently offline"解决方法
2. 看不到日志,显示1970-01-01
参考:http://blog.sina.com.cn/s/blog_5642b8730100yire.html
补充:不过虽然是两个问题,我一开始一直在纠结第一个问题,然后各种修改配置文件(authz和svnserve.conf),但是还是显示1970-01-01,于是我尝试着解决了第二个问题,按照上述文章修改了authz就解决了。

SVN版本冲突

1. 什么是版本冲突

在实际开发过程中,如果两个人同时修改某个文件就会产生版本冲突问题

2. 模拟版本冲突

 模拟上述过程出现如下错误:

 3.解决之道

3.1 合理分配项目开发时间

3.2 合理分配项目开发模块

3.3 通过SVN解决版本冲突问题

a. 更新服务器端数据到本地,出现下图情况

  index.php:整合后的index.php文件

  index.php.mine:小强修改后的index.php文件(起始状态)

  index.php.r6: 09:00更新时的index.php文件

  index.php.r7: 旺财修改后的index.php文件

b. 删除除index.php以外的其他三个文件

c. 修改整合index.php冲突文件

d. 重新提交数据到SVN服务器,即可解决版本冲突问题

svnserver配置文件详解

参考:https://blog.csdn.net/wxr15732623310/article/details/70303586

svnserve是SVN自带的轻型服务器,客户端通过使用SVN://或svn+ssh://为前缀的URL来访问svnserve服务器,实现远程访问svn版本库。
svnserve可以通过配置文件来设置用户和口令,以及按照路径控制版本库访问权限
svnserve配置文件通常由3个文本文件组成:
1)svn服务配置文件:在conf目录下,文件名为svnserve.conf
2)用户名口令文件:在conf目录下,文件名为passwd
3)权限配置文件,在conf目录下,文件名为authz

svnserve.conf文件

该文件由一个[general]配置段组成,组成:<配置项>=<值>
配置项分为以下5项:
anon-access:控制非鉴权用户的访问本库的权限。取值范围为{"write","read","none"},默认值:read
auth-access:控制鉴权用户访问版本库的权限。取值范围为{"write","read","none"},默认值:write
password-db:指定用户名口令文件名。除非指定绝对路径,否则文件位置为相对conf目录的相对路径。默认值:passwd
authz-db:指定权限配置文件名,通过该文件可以实现路径为基础的访问控制。除非指定绝对路径,否则文件位置为相对conf目录的相对路径。默认值:authz
realm:指定版本库的认证域,即在登录时提示的认证域名称。若两个版本库的认证域相同,建议使用相同的用户名口令数据文件。默认值:一个UUID(Universal Unique IDentifier,全局唯一标示)

案例表示:svn服务配置文件的内容如下:
anon-access = none
auth-access = write
password-db = passwd
authz-db = authz
realm = /var/svn/Health_net_V1.0

说明:设定非鉴定用户无权访问该版本库;鉴权用户可对版本库进行读写;用户名口令文件为conf目录下的passwd,权限配置文件为版本库conf目录下的authz,
版本库的认证域为
/var/svn/Health_net_V1.0

passwd文件

该文件由一个[users]配置段组成,格式:<用户名>=<口令> 注:口令为未经过任何处理的明文

案例:
[users]
admin=admin
cheng=cheng

说明:该文件中配置了两个用户admin和cheng,口令分别为admin和cheng

authz文件

该文件由[groups]配置段和若干版本路径权限段组成
[groups]配置段格式:<用户组>=<用户列表>
用户列表由若干个用户组或用户名构成,用户组或用户名之间用逗号","分隔,引用用户组时要使用前缀"@"

版本库路径权限段格式:[<版本库名>:<路径>]
可省略段名中版本库名。若省略版本库名,则该版本库路径权限对所有版本库中相同路径的访问控制都有效。

版本库路径权限段中配置行格式有如下三种:
a. <用户名>=<权限>
b. <用户组>=<权限>
c.  * = <权限>
其中,"*"表示任何用户;权限取值范围为'','r','rw',"表示对该版本库路径无任何权限",'r'表示具有只读权限,'rw'表示有读写权限
注意:每行只能配置单个用户或用户组

案例:authz
[groups]
# harry_and_sally = harry,sally
# harry_sally_and_joe = harry,sally,&joe
# 组名 = 用户列表
admin = admin
users = user1

# [/foo/bar]
# harry = rw
# &joe = r
# * =

# [repository:/baz/fuz]
# @harry_and_sally = rw
# * = r
[Shop:/]
@admin = rw
@users = r
* = r

小结

SVN管理员可以通过这三个配置文件设置svnserve服务的用户名口令,以及对版本库路径的访问权限。这些配置文件保存后就立即生效,不需要重启svnserve服务
做一枚奔跑的老少年!
原文地址:https://www.cnblogs.com/xiaoshayu520ly/p/11771621.html