svn存储文件

您所在的位置:网站首页 linux系统配置文件存储在哪里设置 svn存储文件

svn存储文件

2024-07-07 22:21| 来源: 网络整理| 查看: 265

debian10搭建svn

第一步:安装所需软件包

root@192:~# aptitude -y install subversion subversion 的 (1.10.4-1+deb10u3) 版本已经按要求安装了

image-20220610141731766

查看是否安装成功,可以查看版本。 svnserve --version

image-20220610141834224

提示版本1.13.0,说明已安装成功。

创建版本库目录

创建SVN版本库目录,为后面创建版本库提供存放位置,也是最后启动SVN服务的根目录。

我们在/usr路径下创建svn目录作为版本库目录。

root@192:~# cd /usr/ root@192:/usr# mkdir svn

image-20220610142036265

创建SVN版本库

在上一步建立路径基础上,创建版本库,如dev。

root@192:/usr/svn# pwd /usr/svn root@192:/usr/svn# svnadmin create dev root@192:/usr/svn# ls dev root@192:/usr/svn# ls dev/ conf db format hooks locks README.txt

image-20220610142148503

修改SVN配置

进入conf目录,查看需要修改的配置文件。

root@192:/usr/svn/dev/conf# pwd /usr/svn/dev/conf root@192:/usr/svn/dev/conf# ls authz hooks-env.tmpl passwd svnserve.conf

image-20220610142303744

配置文件详解 authz:权限配置文件,控制读写权限passwd:账号密码配置文件svnserve.conf:svn服务器配置文件 修改svnserve.conf文件 vim svnserve.conf

打开红线标注的# 去掉anon-access、auth-access、password-db、authz-db、realm几项前的注释符号“#”

image-20220610142826636

第二处 image-20220610142852752

配置项含义: anon-access = none|read|write 决定非授权用户的访问级别。none 表示无访问权限,read 表示只读,write 表示可读可写,默认为 read。 auth-access = none|read|write 决定授权用户的访问级别,使用与上面相同的访问级别。默认为 write。 password-db = filename 指定账号密码数据库文件名。filename 是相对仓库中 conf 目录的位置,也可以设置为绝对路径,默认为passwd。 authz-db = filename 指定权限配置文件名,filename 是相对仓库中 conf 目录的位置,也可以设置为绝对路径,默认为authz。 realm = realm-name 指定版本库的认证域,即在登录时提示的认证域名称。若两个版本库的认证域相同,建议使用相同的账号密码数据库文件passwd。

认证域知识延伸: 在SVN客户端登录时,会提示realm认证域,如下图的认证域My First Repository。

image-20220610143917980

修改passwd文件 root@192:/usr/svn/dev/conf# vim passwd

只需在末尾添加账号和密码,格式 账号 = 密码,如user1 = 123456,可添加多个。

image-20220610144111518

修改authz文件 root@192:/usr/svn/dev/conf# vim authz 在根目录下设置user1、user2读写权限:

image-20220610144327950

如果用户比较多,可以使用groups形式设置分组team1,并在根目录下指定分组@team1的权限:

image-20220610144408765

如果想设置其他用户的权限,可以通过*设置,如设置除@team1分组外其他用户只读权限: [/] @team1 = rw * = r 启动SVN服务 执行SVN启动命令,其中参数-d表示以守护进程的方式启动, -r表示设置的根目录。 svnserve -d -r /usr/svn/ 关闭svn命令: killall svnserve 本地访问SVN服务

在windows系统中,安装TortoiseSVN软件,创建一个本地目录,右键选择SVN Checkout测试下,URL填写svn://IP/dev,dev替换成你创建的版本库名称。

image-20220610145858480

输入passwd配置好的用户。

image-20220610145914560

Checkout completed,SVN访问成功,这就Nice了~

image-20220610145926563

扩展 设置查看log日志

想查看提交的svn log日志,需要进一步配置。

编辑svnserve.conf,设置: anon-access = none 编辑authz文件中添加: [/] * =

这样通过鼠标右键TortoiseSVN->show log就可以查看svn提交的历史记录了。

多个项目管控配置

SVN配置文件是很灵活的,如果想使用统一的账户和权限去管控多个项目,可以将多个项目的authz和passwd文件统一放在一处,在多个项目的svnserve.conf文件中配置这两个文件的绝对路径,并在authz中对不同的项目设置用户访问权限。

如:a、b、c、d这4个用户,p1、p2两个项目,其中a、b只能访问p1,c、d只能访问p2。

创建版本库目录 mkdir /usr/svn 创建多个版本库 shell root@192:/usr/svn# svnadmin create p1 root@192:/usr/svn# svnadmin create p2 root@192:/usr/svn# ls dev p1 p2

image-20220610150408524

创建管理用户权限目录 root@192:/usr/svn/p1/conf# mkdir -p /var/svn/conf root@192:/usr/svn/p1/conf# cp authz passwd /var/svn/conf/

image-20220610150650291

修改配置文件 修改p1的svnserve.conf文件: anon-access = none auth-access = write password-db = /var/svn/conf/passwd authz-db = /var/svn/conf/authz realm = p1 修改p2的svnserve.conf文件: anon-access = none auth-access = write password-db = /var/svn/conf/passwd authz-db = /var/svn/conf/authz realm = p1

password-db和authz-db都使用统一管理用户权限目录,使用绝对路径。

修改password-db文件 root@192:/var/svn/conf# pwd /var/svn/conf root@192:/var/svn/conf# ls authz passwd root@192:/var/svn/conf# vim passwd

image-20220610153550095

修改authz文件 [groups] //分组 p1user = a,b p2user = c,d ​ [/] * = #以上没有定义的用户都没有任何权限 ​ [p1:/] //p1的访问控制,c、d无法访问 @p1user = rw ​ [p2:/] //p2的访问控制,a、b无法访问 @p2user = rw

image-20220610153904715

对password-db和authz文件的修改立即生效,不必重启svn。 启动svn服务 svnserve -d -r /usr/svn/ 访问不同项目SVN

同样TortoiseSVN软件,选择SVN Checkout测试。

访问项目p1 URL svn://IP/p1 ​ 访问项目p2 URL svn://IP/p1

统一的配置文件,不同项目限定了不同用户访问,这样就实现了管控多个项目的SVN配置。

以上就是Linux系统搭建SVN服务器详细教程的所有内容,希望对大家有所帮助。

linux客户端连接测试:

客户端需要安装:

[root@client conf]# yum -y install subversion

checkout 把整个版本库下载下来

[root@client conf]# svn checkout svn://10.10.7.155/test //test为服务端版本库目录

出现以下报错:

img

原因:

svn服务未启动或者是启动的时候未指定svn仓库路径,svn默认仓库路径为/var/svn,所以我们需要手动指定为/home/svn/

解决方案:

#ps–ef|greo svn命令查找出来svn的pid,

#kill -9 svnd的pid进程号

#svnserver –d –r /home/svn/

以上操作完成之后,不用再次重启服务(上条命令就是启动svn且指定仓库路径)。再次进行测试

出现报错:Authorizationfailed

img

检查authz文件是否出错。进行修改

再次测试:

img

显示成功取出版本

提交代码文件: 服务器上没有的文件,在客户端需要先add预提交,再commit,如果服务器端已有的文件,直接commit #svn add /root/davesvn/test #svn ci /root/davesvn/test -m “创建新文件” //ci是commit的缩写, -m是添加注释 //提交,俗称存入

# 提交test.txt文件 [root@localhost test]# vim test.txt [root@localhost test]# svn add test.txt A test.txt [root@localhost test]# svn commit test.txt -m "test-version1" Authentication realm: My First Repository Password for 'root': #输入虚拟机root密码 Authentication realm: My First Repository Username: svn #输入svn配置文件内创建的用户 Password for 'svn': #输入用户密码 ------ ATTENTION! Your password for authentication realm: ``` My First Repository ``` can only be stored to disk unencrypted! You are advised to configure your system so that Subversion can store passwords encrypted, if possible. See the documentation for details. You can avoid future appearances of this warning by setting the value of the 'store-plaintext-passwords' option to either 'yes' or 'no' in ## '/root/.subversion/servers'. Store password unencrypted (yes/no)? yes #输入yes Adding test.txt Transmitting file data . Committed revision 1. Windows客户端连接测试

需要安装svn客户端

img

img

img

img

img

img

img

img

img

img

img

img

img

URL of repository为svn服务器的版本库目录路径

Checkout directory为本地的路径

img

设置子项目权限

需求,想要要求其他员工对我们公司svn项目下面的一个目录有读写权限,其他项目没有读写权限 只需要设置俩个文件 authz passwd

我这是想设置一个成员只对这个目录有读写权限

image-20220707162039817

首先添加账号密码 cat passwd

使用随机生成uuid当作密码 cat /proc/sys/kernel/random/uuid

image-20220707163245505

image-20220707162258542

配置权限 cat authz

image-20220707162422854

清理svn缓存

)]

设置子项目权限

需求,想要要求其他员工对我们公司svn项目下面的一个目录有读写权限,其他项目没有读写权限 只需要设置俩个文件 authz passwd

我这是想设置一个成员只对这个目录有读写权限

[外链图片转存中…(img-iZ9mv5lP-1657183641543)]

首先添加账号密码 cat passwd

使用随机生成uuid当作密码 cat /proc/sys/kernel/random/uuid

[外链图片转存中…(img-QZafRZsS-1657183641543)]

[外链图片转存中…(img-1uMy9kBP-1657183641544)]

配置权限 cat authz

[外链图片转存中…(img-0kOEX6k9-1657183641544)]

清理svn缓存

image-20220707162554744



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3