Chinaunix首页 | 论坛 | 博客
  • 博客访问: 515788
  • 博文数量: 93
  • 博客积分: 2479
  • 博客等级: 大尉
  • 技术积分: 1008
  • 用 户 组: 普通用户
  • 注册时间: 2007-11-07 11:59
文章分类

全部博文(93)

文章存档

2012年(2)

2011年(41)

2010年(24)

2009年(21)

2008年(5)

分类: LINUX

2010-10-15 15:07:51

Svn服务器的安装部署+数据迁移+邮件自动通知

1)         svn安装

2)         svn数据的迁移

3)         svn配置邮件自动通知

 

一、svn安装

1.    wget

2.    wget

3.    wget

4.    tar zxvf sqlite-*.tar.gz

5.    ./configure

6.    Make &&make install

7.    tar zxvf subversion-1.6.12.tar.gz

8.    tar zxvf fubversion-deps-1.6.12.tar.gz

9.    cd subversion-1.6.12

10. ./configure –prefix=/usr/local/svn1.6.12 –with-apxs=/opt/httpd2.15/bin/apxs

11. Make && make install

 

Tar xvf db-5.0.26.tar.tar

To do a standard UNIX build of Berkeley DB, change to the build_unix directory and then enter the following two commands:

../dist/configure

make

This will build the Berkeley DB library.

To install the Berkeley DB library, enter the following command:

make install

至此,subversion安装完成。

接下来创建仓库。

 

1.    Mkdir /usr/local/svnroot

2.    /usr/local/svn1.6.12/bin/svnadmin create /usr/local/svnroot/wlotx

3.    创建后需要改变一下svnrootdbdav的权限。
# chmod 777 svnroot/db
# chmod 777 svnroot/dav
# chown -R apache:apache svnroot

4. 修改配置文件

4.1 修改authz文件

#############添加一个组#################

[groups]

# harry_and_sally = harry,sally

# harry_sally_and_joe = harry,sally,&joe

admin = test

#############给该组中所有用户授权#######

[/]

@admin=rw

:wq

4.2 修改passwd文件

[users]   

# harry = harryssecret

# sally = sallyssecret

test=test

 

4.3 修改svnserve.conf文件

anon-access = none

auth-access = write

password-db = /usr/local/svnroot/wlotx/conf/passwd

authz-db = /usr/local/svnroot/wlotx/conf/authz

 

5. 启动svn

/usr/local/svn/bin/svnserve -d -r /usr/local/svnroot/wlotx/

 

二、Svn数据迁移(从windows-àlinux

 

公司的svn库是在windows server上,存放目录为d:/wlotx/
1.
先导出svn库导出到d:\svnbak\svnbak20100728.dump
 
cmd命令行里输入
  svnadmin dump d:/svndata > d:\svnbak\svnbak20100728.dump
 
此时你会看到窗口里显示从第一个版本开始备份,一直到最后一个版本
2.
svnbak20100303.dump想办法传到linux服务器,这是采用svn的方式
3.
我在linuxsvn代码库为:/usr/local/svnroot/wlotx
svnadmin load /usr/local/svnroot/wlotx < /ftp/svnbak20100728.dump

************************************************************************
网上有人说用svnadmin load的时候,/wisedata/svn/repository必要要是空的。
我是在/wisedata/svn/repository库里原来有新增过代码,然后又把代码清空后,再用load的,而且是load成功

Issue:

用的是TortoiseSVN 右键选择show log 时弹出对话框提示“want to go offline?”其它功能 check out,commit,update都可以正常使用.

解决方法:

       svnserve.conf 文件中,设置anon-access = none就可以了

三、 svn配置邮件通知

 
 以前在windows平台时,svnnotify是邮件通知的最好选择。但在aix系统上安装时,因某些模块需要联网获取,安装时很不方便。所以选择了svn自带的commit-email.pl文件来发送电子邮件。
当然,还可以使用mailer.py来发送邮件,但mail.py需要Python环境,安装也挺麻烦的。而aix自带了perl环境,commit-email.pl当然是比较好的选择。
commit-email.pl
的获取地址为:
mailer.py
的获取地址为:
这二者应该是svn官方自己搞的脚本吧。

1
、将下载后的commit-email.pl.in 改为commit-email.pl 上传至 hooks目录下
我的post-commit文件内容如下:

#export LANG=ZH_CN.UTF-8

export LC_CTYPE=en_US.UTF-8
export PATH=$PATH:/user/local/svn-1.6.12/bin:/usr/local/svnroot/wlotx/hooks:
REPOS="$1"
REV="$2"

commit-email.pl "$REPOS" "$REV" --from -s "svn"
是发邮件者,是收件人的邮箱
上面设置 LANGPATH的值非常重要,
设置LANG是为了使发送的邮件支持中文,在这卡了好久。哎。
设置/user/local/svn-1.6.12/bin 是使commit-email.pl能运行svnlook命令;
设置/usr/local/svnroot/wlotx/hooks 是为了运行commit-email.pl post-commit 命令;

2
、修改commit-email.pl的一些设置

对于commit-email.pl 有些内容需要更改才能使得邮件通知成功。
第一点是修改perl路径
commit-email.pl 默认的perl路径是#!/usr/bin/env perl ,centos下的perl是在/usr/bin目录下,所以将其改为#!/usr/bin/perl
第二点是设置smtp server的值
61行,设置你的发送邮件的服务器
$smtp_server = "mail.****.com";
第三点是设置svn-look的路径
64行,my $svnlook = "/usr/local/svn-1.6.12/bin/svnlook";
/usr/local/svn-1.6.12/
是我的svn安装目录
阅读(2737) | 评论(1) | 转发(0) |
给主人留下些什么吧!~~

chinaunix网友2010-10-15 17:49:23

很好的, 收藏了 推荐一个博客,提供很多免费软件编程电子书下载: http://free-ebooks.appspot.com