form1.cn
Make a little progress every day

Linux中SVN服务端配置

01th of November 2016 Linux SVN 1702

安装

# sudo apt-get install subversion subversion-tools


查看版本

# svn --version   
# svnadmin --version


建立版本库

# mkdir /datafile/svnadmin
# svnadmin create /datafile/svnadmin


启动svn网络服务

# svnserve -d -r /datafile/svnadmin

其中 -d 参数让 svnserve 运行在后台,-r 参数限定了数据仓库,在网络上可以访问的地址,/datafile/svnadmin指定svn数据仓库存放的目录位置

创建项目并导入源码库

# cd /datafile/huailaijie
# svn import -m '导入' ./ svn://123.57.233.43/huailaijie

这里有个  ./ 代码当前目录中的代码文件
出现 svn: E170001: Authorization failed  需要配置  svnserve.conf  和  passwd

配置

svnserve.conf    //访问权限、权限配置文件设置
authz       //用户组、用户、访问权限设置
passwd        //用户、密码设置


配置svnserve.conf

# vim svnserve.conf
anon-access = none //禁止匿名访问 
auth-access = write 
password-db = passwd //统一使用密码文件 
authz-db = authz  //如果打开就要vim authz 创建分组
#realm = project1 //权限域名,很重要,写你的工程名 (可忽略)


配置passwd

[users]    //用户名 = 密码 
eg1 = 123
eg2 = 123


配置authz

[groups]
# harry_and_sally = harry,sally
# harry_sally_and_joe = harry,sally,&joe
g_php = zjwlgr,yl  //分组,如g_php组中有zjwlgr,y 成员
g_ios = zjwlgr,lzl,
g_android = zjwlgr,ww
# [/foo/bar]
# harry = rw
# &joe = r
# * =
# [repository:/baz/fuz]
# @harry_and_sally = rw
# * = r
[/]
zjwlgr = rw
* = 
[/web_bbs]
@g_php = rw
* = 
[/web]
@g_php = rw
* = 
#
* = 表示其他的没有任何权限
* = r 其他有读的权限


当你在本地checkout的时候注意线上防火墙是否放行了svn的端口号3690

参考:Centos7 关闭防火墙与放行3306 进行设置


commit失败错误解决

svn Error normalizing log message to internal format 
svn commit fail:
svn: E000022: Commit failed (details follow):
svn: E000022: Error normalizing log message to internal format
svn: E000022: Valid UTF-8 data

解决方法

# vi ~/.subversion/config
log-encoding = gbk