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 旧地址 新地址

 

posted @ 2015-03-17 17:06  扎克  阅读(268)  评论(0编辑  收藏  举报