折腾了好几天,总算成功在自己的电脑上创建了一个svn服务器。过程参考了很多网络教程, 主要有:
在linux服务器上装svn版本管理,自动部署代码到项目: http://www.cnblogs.com/mitang/p/4309762.html
http://www.zerophp.cn/archives/110/
过程:
1. 确认svn服务端
这个因为Ubuntu14..04 已经默认安装了,所以可以不用管。
2. 创建新的repository
其实就是新建一个目录啦~注意在不同的位置可能需要不同的权限。
su cd / mkdir svn cd svn/ svnadmin create svn_personal/
这样一个新的名叫:svn_personal 的 repository 就创建好了。
3. 修改配置文件
配置文件主要在svn_personal里的conf/文件夹里。此过程大体跟参考文章一致,除了小细节。
(1) 修改 svnserve.conf
anon-access = read //默认是只读read auth-access = write //认证后有写入权限 password-db = passwd //帐号密码配置文件 authz-db = authz //权限配置文件 realm = svn_personal //改成自己的版本库 生效范围
(这里如果不懂各项参数的话最好还是不要自己改动。曾经把groups选项修改了一下,结果后来怎么也连接不上服务器)
(2) 修改 authz
[group] manager = zjyx devteam = z8j [/] //制定根目录下的权限 @manager = rw @devteam = rw * = r
(3) 修改 passwd
[users] zjyx = *** //用户名 = 密码 z8j = ***
4. 启动svnserve
启动之前注意退出root,否则可能会发生:svn: E000013: Commit failed (details follow):cannot open “/data/svn/xxxx/db/txn-current-lock”: permission denied 错误。
运行以下命令即可:
svnserve -d -r /svn/svn_personal/
5. 修改读写权限
我们还需要修改/svn/svn_personal/文件夹下的/db/文件夹权限,否则也会发生permission denied错误。
sudo chmod -R 777 db/
6. ssh访问
现在我们就可以从外部访问这个repository啦~ssh命令行如下;
svn co svn+ssh://username@hostname/svn/svn_personal/ .
此处username为authz里的用户名。repository应该用full path。我看有些教程写的只是relative path,但是在我的电脑上 relative path不能正常工作,总是显示 repository not found on URL: *** 之类的报错信息。