缘由:
公司原来只有技术部使用svn,每次html页面修改,前端总是传来一个又一个压缩包,改得不厌其烦- -,之前就提过一次,让前端也使用svn,最后不了了之。现在正好原来的运维辞职了,新的运维还没到,暂代的运维非常繁忙,我就亲自出马了,哈哈 :)。这里大致把自己做的步骤说下。
需求:
为产品,设计,前端建立新的svn版本库,同时把原有技术的版本库迁移过来统一管理,并保持原来所有修订版本。
权限如下:
| pm | ued | html | dev | |
| pm | rw | r | r | r |
| ued | r | rw | - | - |
| html | r | r | rw | - |
| dev | r | - | r | rw |
开工:
服务器端:
先建立版本库存放的根目录:
mkdir /data/svn2011
建立不同的版本库:
svnadmin create /data/svn2011/pm svnadmin create /data/svn2011/ued svnadmin create /data/svn2011/html svnadmin create /data/svn2011/dev
统一账号密码管理,权限设置:
mkdir /data/svn2011/conf cp /data/svn2011/dev/conf/authz /data/svn2011/conf/ cp /data/svn2011/dev/conf/passwd /data/svn2011/conf/
添加用户:
vim /data/svn2011/conf/passwd
在[user]下添加账号密码,格式如下,一行一个,注意等号前后空格:
user = password
admin = 123456
pm = 123456
ued = 123456
html = 123456
dev = 123456
……
话说,密码是明文的= =
权限分组:
vim /data/svn2011/conf/authz
文件内容基本如下:
[groups]
admin_group = admin #若是还有其他用户,用逗号分隔,必须是passwd中已有用户账号
pm_group = pm
ued_group = ued
html_group = html
dev_group = dev
设置权限:
[pm:/] #pm版本库根目录
@pm_group = rw
@ued_group = r
@html_group = r
@dev_group = r
如果没有权限,可以不写,或者等号后面留空,其他版本库设置类似。
配置下每个版本库的svnserve.conf
vim /data/svn2011/dev/conf/svnserve.conf
我这里都是相同的,改下面这四句:
# anon-access = read
# auth-access = write
# password-db = passwd
# authz-db = authz
改为:
anon-access = none
auth-access = write
password-db = /data/svn2011/conf/passwd
authz-db = /data/svn2011/conf/authz
到此,新版本库的前期工作基本结束了。下面迁移原有技术部版本库至/data/svn2011/dev目录下
SVN提供了dump和load命令,详情可点击这里查看
简单来做就是:
svnadmin dump /data/myrepos > /tmp/repos svnadmin load /data/svn2011/dev < /tmp/repos
命令执行成功后,基本算是迁移好了。
停止原有svnserve服务,启动新服务
/path/to/svnserve -d -r /data/svn2011
#这步我查了蛮多资料的,开始以为要启动多个进程,没想到这么简单,启动时参数设成版本库的根目录就可以了。
客户端使用:
新建的版本库直接检出就可以了。
迁移的版本库需要重新定位一下,用小乌龟操作还是很简单的。
现在看着步骤好像不太难,其实花了一天工夫捏。特别感谢SN童鞋的热心帮助。很多东西都是请教他的,感谢此童鞋百忙之中还抽空帮我解决问题。:)
PS:白天做的,半夜写的,不知道有没有遗漏步骤,有发现的童鞋还请批评指正。
学习了
[回复]
N 回复:
August 27th, 2011 at 11:40 上午
@牛子, hi,牛子
[回复]
膜拜李头
PS:汗,验证码居然是:TNND
[回复]
走http的话 apache WebDAV 可以不是明文哦。系统htpasswd 创建密码。
[回复]