1、Linux系统安装svn服务
# yuminstall subversion<img id="selectsearch-icon" src="https://gss0.bdstatic.com/70cFsjip0QIZ8tyhnq/img/iknow/qb/select-search.png" alt="搜索">
2、新建一个目录用于存储SVN所有文件
#mkdir -p /cbroot/svnserver/cbweb
3、在上面创建的文件夹中为项目project_1,创建一个版本仓库
# svnadmin create /cbroot/svnserver/cbweb/trunk
4、为项目配置权限
①svnserve.conf 是主配置文件
vim /cbroot/svnserver/cbweb/trunk/conf/svnserve.conf
anon-access=none #匿名可读
auth-access=write #验证用户可读写
password-db=passwd #指向验证用户名密码的数据文件 passwd
auth-db=authz #指向验证用户的权限配置文件 authz
注意:每一行前方不能有空格,否则会出现 Option expected错误!
②passwd用户名密码配置文件
vim /cbroot/svnserver/cbweb/trunk/conf/passwd
[users]
=123456
=123456
③authz用户权限配置文件
[groups]
trunk=,
[/]
@trunk=rw #定义群组 managers 有读写权限
manager3=r #定义 manager3 有读权限
*= #以上没有定义的用户都没有任何权限
5、启动SVN服务器上面的版本库cbweb
svnserve -d -r /cbroot/svnserver/cbweb/
###启动多个svn服务
svnserve -d –listen-port 3688 -r /static/
② 怎么在linux服务器上部署svn
1. 安装SVN服务器:
检查是否已安装
# rpm -qa subversion
安装SVN服务器
# yum install httpd httpd-devel subversion mod_dav_svn mod_auth_mysql
验证安装
# cd /etc/httpd/moles
# ls | grep svn
mod_authz_svn.so
mod_dav_svn.so
查看版本
# svnserve --version
2. 代码库创建:
安装完成后要建立SVN库
# mkdir -p /opt/svn/repositories
# svnadmin create /opt/svn/repositories
执行后,自动建立repositories库,查看/opt/svn/repositories文件夹包含了conf,db,format,hooks,locks,README.txt等文件,说明一个SVN库已经建立。
3. 配置版本库:
进入上面conf文件夹下,进行配置:
a. 用户密码passwd配置:
# vi + passwd //+表示光标放在文件最低端
修改passwd为一下内容:
[users]
# harry = harryssecret
# sally = sallyssecret
zhoulf=123456
b. 权限控制authz配置:
# vi + authz
设置哪些用户可以访问哪些目录,向authz文件追加以下内容:
[/]
zhoulf=rw //给该用户访问所有库的权限
或
[repositories:/project] //repository库的根目录权限
zhoulf=rw
/ 表示根目录及以下,根目录是svnserve启动时指定的,我们指定的是/opt/svn;/ 就是指对全部版本库都具有权限
repositories:/ 表示对库repositories的根目录设置权限
PS:
* 权限配置文件中出现的用户名必须已在用户配置文件中定义。
* 对权限配置文件的修改立即生效,不必重启svn。
c. 服务svnserve.con配置:
# vi + svnserve.conf
添加一下内容:
[general]
#匿名访问的权限,可以是read,write,none,默认为read
anon-access=none
#使授权用户有写权限
auth-access=write
#密码数据库的路径
password-db=passwd
#访问控制文件
authz-db=authz
#认证命名空间,subversion会在认证提示里显示,并且作为凭证缓存的关键字
realm=/opt/svn/repositories
这里注意各标签不能错,也不能有重复,不然无法连接。
d. 配置防火墙端口(如果需要):
不一定每个人都需要设置,可以先测试后再看是否需要打开端口
# vi /etc/sysconfig/iptables
添加一下内容:
-A INPUT -m state --state NEW -m tcp -p tcp --dport 3690 -j ACCEPT
保存后重启防火墙
# service iptables restart
4. 查看:
a. 启动SVN
# svnserve -d -r /opt/svn/repositories
b. 查看SVN进程
# ps -ef|grep svn|grep -v grep
root 12538 1 0 14:40 ? 00:00:00 svnserve -d -r /opt/svn/repositories
c. 检测SVN端口
# netstat -ln |grep 3690
tcp 0 0 0.0.0.0:3690 0.0.0.0:* LISTEN
5. 停止重启SVN:
# killall svnserve //停止
# svnserve -d -r /opt/svn/repositories // 启动
6. 测试连接:
使用TortoiseSVN进行测试:
1. SVN服务启动后,需要使用客户端测试连接:
客户端连接地址:svn://192.168.15.231;然后,输入用户名密码;
2. 新建一个文件夹,即本地的库文件夹,右键checkout,将会得到一个隐藏文件夹.svn;
3. 在此文件夹中放入项目内容,然后右键点击commit,就可以上传本地项目了。
③ linux下svn客户端访问windows下的svn服务器
一,安装svn服务器
在Linux中安装了服务端,
$ yum install subversion
二,在Windows中安装客户端(TortoiseSVN-1.9.4.27285-x64-svn-1.9.4.msi)
三,基本的SVN服务器配置
1,新建一个目录用于存储SVN所有文件
$ mkdir /svn
2,新建一个版本仓库$ svnadmin create /svn/project
3,添加用户
要添加SVN用户非常简单,只需在/svn/project/conf/passwd文件添加一个形如“username=password”的 账号为username和密码为password
[users]
mysj = mysj
test = test
5,修改用户访问策略
/svn/project/conf/authz记录用户的访问策略,以下是参考:
[groups]
admin=mysj //将用户进行分组
user=test
[project:/] //进行授权
@admin = rw //r表示读,w表示写
@user = r
* =
6,修改svnserve.conf文件,让用户和策略配置升效.
svnserve.conf内容如下:
此处切记要注意空格,不然会导致svn配置不成功
[general]
anon-access = none
auth-access = write
password-db = /svn/project/conf/passwd
authz-db = /svn/project/conf/authz
7,启动服务器
# svnserve -d -r /svn
注意:如果修改了svn配置,需要重启svn服务,步骤如下:
$ ps -aux|grep svnserve
$ kill -9 ID号 杀死服务
$ svnserve -d -r /svn
四,在Windows系统中检出svn的文件,此时的地址也应该为 svn://Linux的ip地址/project/文件夹名(你自己创建的)。
④ Linux上的svn配置文件在哪里
你说的svn配置文件是什么配置文件呢?如果只是需要使用svn相关命令的话,因为svn是版本控制工具,所以它应该是在检出的工作目录下使用,其他目录不可以使用的;
⑤ linux 配置已有的文件夹为svn的指定目录
要实现这个想法,关键原理就是把default这个文件夹变成在svn控制之下的一个工作副本,然后回通过post-commit钩子去自动更新答这个工作副本。几个关键操作:
1、需要在服务器上安装svn服务器端,启动svn服务,并创建一个svn库;
2、将当前的default文件夹变成新建的svn库的工作副本(客户端存放数据的文件夹),具体操作:将当前default文件夹下的内容import到新建的svn库中,然后再清空default,然后再将svn库中的内容checkout到default;
3、使用svn的post-commit钩子(这个钩子是在每次成功commit后被SVN服务器自动调用的),编辑这个钩子,内容就是svn update 文件夹default,这样每次commit成功后就会自动更新default文件夹;
4、在你自己的电脑上checkout那个svn库,然后你就可以从本地commit,然后服务器端就自动更新default文件夹了。
⑥ linux怎么配置svn服务器
1.检查是否已安装
rpm -qa subversion
如果要卸载旧版本:
yum remove subversion
2.安装
yum install subversion
PS:yum install httpd httpd-devel subversion mod_dav_svn mod_auth_mysql(这是安装配合Apache的模块,我暂时还没做,做了再补上,你可以只装subversion,多装了也无所谓)
3.检查是否安装成功
svnserve --version
如果成功会输出版本号
4.创建仓库目录
例如:
mkdir /home/svn/game
5.创建项目
svnadmin create /home/svn/game
6.检查是否创建成功
cd /home/svn/game
ll
如果成功,game目录下会多出几个文件夹
7.进入conf目录会看到3个配置文件,生成的文件中都有英文注释说明
示例需求:
策划组:开策划、美术读写
后端组:开后端读写,策划只读
前端组:开前端读写,策划、美术只读
美术组:开美术读写,策划只读
管理员组:所有的读写
authz:用户权限配置
示例:
[groups]
#管理组
manager = boss
#服务端用户组
server = server1,server2
#客户端用户组
client = client1,client2
#美术组
art = art1,art2
#策划组
design=design1,design2
[game:/]
@manager=rw
[game:/server]
@server=rw
[game:/client]
@client=rw
@design=r
@art=r
[game:/art]
@design=rw
@art=rw
@client=r
[game:/design]
@design=rw
@server=r
@client=r
@art=r
passwd:用户密码
[users]
boss=123456
server1=123456
server2=123456
client1=123456
client2=123456
art1=123456
art2=123456
design1=123456
design2=123456
svnserve.conf:
#匿名访问者权限
anon-access = none
#验证用户权限
auth-access = write
#密码文件地址
password-db = /home/svn/game/passwd
#权限文件地址
authz-db = /home/svn/game/authz
#项目名称(UUID)
realm =game
8.开放svn端口
默认是3690端口,你也可以用别的。已开启的跳过这一步
修改
iptables -I INPUT -p tcp --dport 3690 -j ACCEPT
保存
/etc/rc.d/init.d/iptables save
重启
service iptables restart
查看
/etc/init.d/iptables status
9.启动SVN服务
svnserve -d -r /home/svn
-d:守护进程
-r:svn根目录
假设服务端IP为192.168.1.100,那么如下设置后game的访问目录就为:
svn://192.168.1.100/game
⑦ linux下svn怎么配置路径权限
Linux 下可以直接通过如下命抄令直接获取svn server:(我使用的服务器系统为Debian 7.5 稳定版)
apt-get install subversion
安装完成后,可通过svnserve --version 查看安装的版本,我所使用的svn server 版本为1.6.17:
二、创建代码库
创建库(以test库为例):
sudo svnadmin create /home/user/svn/test
这样,一个简单的代码仓库就创建完成了。
接下来启动svn服务:
svnserve -d -r /home/user/svn/test
然后client端就可以通过“svn://ip.ip.ip.ip/test”来访问svn了。
⑧ windows下svn迁移到linux
将windows上svn迁移到linux上
实现svn方式和http方式访问
进入conf目录
authz :负责test3库的账号权限管理,控制账号是否读写权限
passwd :负责test3库的账号和密码管理,注意密码是明文的
svnserve.conf :svn服务器配置文件
示例:
启动:
端口:3690 注意打开防火墙
访问:
svn://192.168.1.206:3690/test3
用mod_dav_svn模块实现Apache服务进行访问svn仓库,mod_dav_svn是Apache和svn之间的接口
SVNParentPath /svn/svndir
指如果有多个版本库建议使用SVNParentPath不使用SVNPath,/svn/svndir 版本库位置
AuthUserFile /svn/svndir/passwd
指后面使用apache的htpasswd创建的用户名密码
AuthzSVNAccessFile /svn/svndir/authz
指权限文件
创建用户并设置密码
此时可以通过
http://192.168.1.206/svn/test3
在浏览器中输入用户名密码访问
直接将windows下Repositories目录下的数据打包迁移到linux下的Repositories即可访问,但是用户名和密码不可以迁移,需要重建
1 注意权限为问题,如果/svn/svndir属主不是apache,会一直访问拒绝访问
2 svn协助与http协议
svn协议,用于客户端使用svn://方式访问版本库,而mod_authz_svn模块让客户端可通过Apache访问版本库,它们分别使用不同的服务:svnserve、httpd进行访问。由于用户、组权限不同,权限管理方式也不相同,因此,不建议同时启动两种访问方式。
而易用性,管理方便的角度来分析,Apache以,mod_authz_svn模块的方式访问版本库会更多人选择。(mod_authz_svn方式,使用80端口访问,并且提供https等加密传输,用于用户信息验证的密码保存方式不是明文的)