安装
# 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
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