svn配置
1. 安装SVN服务器软件
2. 在home下创建svn根目录
mkdir /home/svnroot
3. 在 /home/svnroot下创建Project1 , Project 2, Project3 三个项目文件夹,这三个文件夹要存放不同项目的SVN版本库。
4. 同样在 /home/svnroot中创建 CodeAuth 文件夹,该文件夹将保存 passwd 和authz文件,在第6步中实现。
5. 创建项目
cd /home/svnroot
svnadmin create Project1
svnadmin create Project2
svnadmin create Project3
分别创建了三个项目的版本库,版本库目录conf中存在passwd 、authz、和 svnserve.conf 文件
passwd - 用于存放本svn库的用户名和密码
authz - 存放本svn库的访问授权信息
svnserve.conf 文件为存放本svn库的全局访问控制信息
6. 将passwd 、authz文件拷贝到/home/svnroot/CodeAuth中,将三个项目下conf目录中的passwd 和 authz文件删除
7. 修改 三个项目中conf目录下的svnserve.conf 文件,最快的办法是修改一个项目下的svnserve.conf 文件,使用它覆盖其他两个项目下的svnserve.conf 文件。
svnserve.conf 修改为
[general]
anon-access = none auth-access = write
password-db = http://www.cnblogs.com/CodeAuth/passwd
authz-db = http://www.cnblogs.com/CodeAuth/authz
8. 修改/home/svnroot/CodeAuth下的passwd文件为
[users] admin=admin001
9. 修改/home/svnroot/CodeAuth下的Authz文件为
[groups] admin_group=admin
[Project1:/]
@admin_group=rw
*=
[Project2:/]
@admin_group=rw
*=
[Project3:/]
@admin_group=rw
*=
10. 启动SVN服务
svnserve -d -r /home/svnroot
OK,服务器端配置完毕!
-----------------------------------------------------------------------------
分组
vi passwd
//用户名 = 密码
[users]
eg1 = 123
eg2 = 123
vi authz
[groups] //分组
admin = eg1,eg2
[project1:/] //工程1的访问控制,guest1,2无法访问
@admin = rw
或
eg1 = rw
eg2 = rw
[project2:/]
@admin = rw
----------------------------------------------------------------------------------------------
杀掉svn 进程
killall svnserve
-----------------------------------------------------------------------------------------------
将一台服务器上已有的SVN仓库数据整体迁移到另外一台机器上,要保留所有的版本号和版本信息,需要以下过程来解决
No.1 将准备要迁移的仓库导出 命令: svnadmin dump 仓库名 > svn_dump
No.2 在新的服务器上创建心的仓库 命令: svnadmin create SVNROOT
No.3 导入刚导出的文件svn_dump 命令: svnadmin load SVNROOT < svn_dump
// 注意,以上操作会导致所有的配置丢失,比如密码、权限控制等,只要将原有的conf文件覆盖新的就可以了
在整个操作的过程中要注意仓储路径问题,为避免出错,可以使用绝对路径来表示以上内容,仅以No.3 做实例解析
svnadmin load D:\SVNROOT < D:\svn_dump 解析:新的仓储SVNROOT就创建在D盘根目录下,而导出的文件也已将放在了本地的D盘根目录下
网上有提供一种直接将原仓库目录copy到另一台机器上,然后修改apache 的svn路径指向新的地址的做法,我也尝试过一次,发现有丢失信息,具体不详,所以不推荐
还有一个问题,我查看我的原始准备导出的仓库文件大小只有2.2G左右,而使用svnadmin 命令导出后的文件却有5G之多,中间的差别我也不甚了解,所以推荐使用svn的命令导入仓库
更换svn源
svn sw --relocate 旧地址 新地址