svn 服务器创建和迁移

一、svn服务器的安装

1.下载subversion和apache的最新src包

2. 新建一个用户:svnroot ,以下操作非特别说明皆为root用户操作

#groupadd svn

#useradd svnroot -g svn

#passwd svnroot

3. 编译安装httpd:

//解压apache2安装包

# tar xvzf httpd-2.2.3.tar.tar

//进入解压后的目录

# cd httpd-2.2.3

//配置apache安装

# ./configure --enable-dav --enable-so --prefix=/usr/local/apache2/

# make

//安装

# make install

//启动apache服务

# /usr/local/apache2/bin/apachectl start

//打开浏览器http://localhost/如果有测试页"It works!"出现则证明已经安装成功。

  

4. 安装Subversion

//解压SubVersion安装包

 # tar xvzf Subversion-1.4.0.tar.gz

//进入解压后的目录

# cd Subversion-1.4.0

//配置subversion安装

#./configure --with-apxs=/usr/local/apache2/bin/apxs --prefix=/usr/local/subversion --with-apr=/usr/local/apache2 --with-apr-util=/usr/local/apache2 --with-ssl --with-zlib --enable-maintainer-mode

# make

//安装

# make install

//创建库文件所在的目录 (svnroot用户进行下面的操作)

# mkdir /home/svnroot/repository

//创建仓库"test"

# /usr/local/subversion/bin/svnadmin create /home/svnroot/repository/test

//查看svn是否安装成功

#  /usr/local/subversion/bin/svnadmin --version

//不让其他人有该目录的权限

# chmod 700 /home/svnroot/repository

 (svnroot用户操作结束)

 

5. 修改Apache配置文件

# vi /usr/local/apache2/conf/httpd.conf

   //找到下列语句,如果没有则自行添加

   LoadModule dav_svn_module modules/mod_dav_svn.so

   LoadModule authz_svn_module modules/mod_authz_svn.so 

  //在后面添加 

   <Location /svn>

   DAV svn

   SVNParentPath /home/svnroot/repository/ //svn父目录

   AuthzSVNAccessFile /home/svnroot/repository/authz.conf //权限配置文件

   AuthType Basic //连接类型设置

   AuthName "Subversion.zoneyump" //连接框提示

   AuthUserFile /home/svnroot/repository/authfile //用户配置文件

   Require valid-user //采用何种认证

   </Location>

 

//重启apache

 # /usr/local/apache2/bin/apachectl restart

//打开浏览器访问http://localhost/svn/test/,如果有东西显示就说明成功。

  

6. 权限管理

1)增加用户

# htpasswd -c /home/svnroot/repository/authfile 用户名

//第一次设置用户时使用-c表示新建一个用户文件。回车后输入用户密码,完成对用户的增加

# htpasswd  /home/svnroot/repository/authfile 用户名(加入新的用户,就不用-c了)

2)权限分配

# vi /home/svnroot/repository/authz.conf 

 [groups]

admin=useradmin

devteamcs = useradmin,user1,user2//这里定义了一个用户组

[/]//对所有的项目,所有的用户都有读权限,admin用户有读写权限

@admin = rw

* = r

[test:/]//对test项目,

@devteamcs = rw

// 在 /usr/local/apache2/conf/httpd.conf 文件中配置,找到文件中的这两行:

User daemon

Group daemon

 // 将daemon改为svnroot,组也做相应更改,让apache进程以svnroot的身份运行

//改完后是这个样子

User svnroot

Group svn

//重启apache

  # /usr/local/apache2/bin/apachectl restart

访问http://localhost/svn/test ,现在需要身份验证,且通过验证后应该可以看到信息

 补充:在xp的环境下,如果你运行着卡巴斯基,可能会导致无法访问svn,通常会报400 Bad Request错误

解决办法是:进入卡巴斯基的设置-->网络设置--->端口设置,然后从端口列表中去掉80端口即可

再次补充:eclipse有svn的插件,subclipse,安装路径为:http://subclipse.tigris.org/update

 

二、svn服务器迁移

1、导出

  svnadmin dump repos_path >  respo_path

 

2、导入

 名称:

                  svnadmin load — 从标准输入读进一个“svnadmin load”格式化的流。

        概要:         

                  svnadmin load REPOS_PATH 

        说明:

                  从标准输入读取格式化流“dumpfile”,提交新修订版本到版本库的文件系统,在标准输出返回进度。

        选项:

               --quiet (-q)
              --ignore-uuid
             --force-uuid
             --use-pre-commit-hook
             --use-post-commit-hook
              --parent-dir
例子:

 

这里显示了加载一个备份文件到版本库(当然,使用svnadmin dump):

$ svnadmin load /var/svn/restored < repos-backup
<<< Started new txn, based on original revision 1
     * adding path : test ... done.
     * adding path : test/a ... done.
…

或者你希望加载到一个子目录:

$ svnadmin load --parent-dir new/subdir/for/project /var/svn/restored < repos-backup
<<< Started new txn, based on original revision 1
     * adding path : test ... done.
     * adding path : test/a ... done.
…
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值