一、导出版本

具体迁移步骤如下:
1、先将代码库通过svn dump命令备份出来,我现在需要迁移test这个代码,则命令如下:
cd G:\ 因为我的版本库在g盘下
svnadmin dump -r 0:HEAD svn > test.dump
这样xinsi库将备份到test.dump文件中了。


2、搭建linux服务器端的svn
首先安装svn,装完以后创建同名的版本库
1)我在home目录下创建了名为svn的版本库,并启动svn指定在home目录

cd /home

svnadmin create svn

svnserver -d -r /home

注意:

假如我的服务器ip地址为:115.36.45.124,则再windows端我做check时,版本路径应该是这样的:

svn://115.36.45.124/svn 而不是 http://115.36.45.124/svn或者svn://115.36.45.124/home/svn等

因为我们在启动svn服务时已指定了/home所以不要加/home了

2)导入版本库到新的版本库svn中

svnadmin load svn < test.dump

3)修改配置文件

cd svn/conf

做相应的修改。

需要注意的地方
1 首先找到原来的资源库所在的位置 ,然后在cmd方式下进入到所在的目录再执行导出语句
2 导入时同样也是要到资源库的位置cmd方式下执行导入
3 如果cmd方式下svnadmin提示错误,可能是需要将bin目录添加到path路径中
注意svnadmin dump时是在服务端的操作,而不是在客户端的操作,所以刚开始dump D:\盘的东西是不行的
应该dump的是G:\盘的服务端svn的版本库

======================遇到的问题==========================

问题1:在修改文件后show log无法显示日志,上面的时间会自动在2016年和1970年间跳,而且设置不了时间。
解决方法:
1.编辑svnserve.conf,设置“anon-access=none”
2.在authz中添加
[/]
* =

即可 。

=============================转载========================

2.2 创建SVN 版本库

[root@singledb ~]# mkdir /u02/svn

[root@singledb ~]# svnadmin create /u02/svn/davesvn--davesvn为版本库名称

2.3 SVN 配置

创建版本库后,在这个目录下会生成3个配置文件:

[root@singledb conf]# pwd

/u02/svn/davesvn/conf

[root@singledb conf]# ls

authzpasswdsvnserve.conf

1svnserve.conf svn服务配置文件下。

2passwd用户名口令文件。

3authz权限配置文件。

svnserve.conf 文件,该文件配置项分为以下5项:

anon-access控制非鉴权用户访问版本库的权限。

auth-access控制鉴权用户访问版本库的权限。

password-db指定用户名口令文件名。

authz-db:指定权限配置文件名,通过该文件可以实现以路径为基础的访问控制。

realm:指定版本库的认证域,即在登录时提示的认证域名称。若两个版本库的认证域相同,建议使用相同的用户名口令数据文件

Passwd 文件

我们在svnserve.conf文件里启用这个文件。然后配置如下:

[root@singledb conf]# cat passwd

### This file is an example password file for svnserve.

### Its format is similar to that of svnserve.conf. As shown in the

### example below it contains one section labelled [users].

### The name and password for each user follow, one account per line.

[users]

# harry = harryssecret

# sally = sallyssecret

dave = davepwd

tianlesoftware = tianlesoftwarepwd

authz 文件

在网上找到一个很好的配置例子:

[groups]

admin = john, kate

devteam1 = john, rachel, sally

devteam2 = kate, peter, mark

docs = bob, jane, mike

training = zak

--这里把不同用户放到不同的组里面,下面在设置目录访问权限的时候,用目录来操作就可以了。

# 为所有库指定默认访问规则

# 所有人可以读,管理员可以写,危险分子没有任何权限

[/]--对应我测试里的:/u02/svn 目录

* = r

@admin = rw

dangerman =

# 允许开发人员可以完全访问他们的项目版本库

[proj1:/]

@devteam1 = rw

[proj2:/]

@devteam2 = rw

[bigproj:/]

@devteam1 = rw

@devteam2 = rw

trevor = rw

# 文档编写人员对所有的docs目录有写权限

[/trunk/doc]

@docs = rw

# 培训人员可以完全访问培训版本库

[TrainingRepos:/]

@training = rw

下面我们来配置我们的authz文件:

[root@singledb conf]# cat authz

[groups]

admin = dave

dev=tianlesoftware

[davesvn:/]

@admin = rw

@dev = rw

[root@singledb conf]#

2.4 启动和停止SVN服务

1)启动SVN服务:

[root@singledb conf]# svnserve -d -r /u02/svn

-d表示后台运行

-r 指定根目录是/u02/svn

[root@singledb conf]# ps -ef | grep svn

root459210 18:04 ?00:00:00 svnserve -d -r /u02/svn

root459437090 18:04 pts/100:00:00 grep svn

2)停止SVN服务:

ps -aux |grep svn

kill -9 进程杀掉

. 客户端连接SVN 服务器

3.1 安装TortoiseSVN 客户端

下载地址在第一节已说明。

3.2 找到自己项目的目录,右击,进行SVN 操作

1)新建测试目录svn,进入后右键,点checkout


0_1294246352OwOP.gif


0_1294246360J87f.gif

SVN 服务器的IP地址和版本库名称。

0_1294246368cl2S.gif

新建个文件svn.txt. 把这个文件上传到SVN服务器(add):

0_1294246375315K.gif


0_1294246384gGfo.gif