明牯工作室 - 嵌入式软件服务

Svn服务器配置

| Comments

Windows 环境

一.安装

1. 安装apache服务器

下载httpd-2.2.22-win32-x86-openssl-0.9.8t.msi,apache占用80端口, 安装完成后,在网页浏览器输入http://your_ip,会显示其已经工作,如果80端口端口占用,参考下面内容修改端口;

2. 安装svn服务器

下载Setup-Subversion-1.7.4.msi,默认安装即可;

3. 安装svn客户端

下载TortoiseSVN-1.7.x.xxxxx-win32-svn-1.7.x.msi,默认安装即可;

二.创建数据仓库

1. 确定数据仓库的路径,假设安装在d:\svn_repos,dos命令如下:

d:
mkdir d:\svn_repos

2. 创建一个新仓库,dos命令如下:

svnadmin create d:\svn_repos\my_project

三.配置数据仓库

1. 创建配置文件夹

mkdir d:\svn_repos\conf

2. 添加文件D:\svn_repos\conf\access.auth,添加内容如下:

[my_project:/]
meegoo=rw

含义:用户meegoo对my_project有读写权限。

3. apache账户管理

初次建立密码文件,前者为用户名称,后者为密码:

c:
cd "c:\Program Files\Apache Software Foundation\Apache2.2\bin"
htpasswd -cb users.auth meegoo 123456

添加其他用户,去掉-c参数:

htpasswd -b users.auth ming 123456

把users.auth复制到D:\svn_repos\conf\,或复制内容到D:\svn_repos\conf\users.auth。

四.配置apache服务器

1. 拷贝文件

cd   "C:\Program Files\Apache Software Foundation\Apache2.2\modules"
copy "C:\Program Files\Subversion\bin\mod_authz_svn.so"
copy "C:\Program Files\Subversion\bin\mod_dav_svn.so"

2. 修改apache配置文件

修改文件C:\Program Files\Apache Software Foundation\Apache2.2\conf\httpd.conf:
去除“LoadModule dav_module modules/mod_dav.so”前面的“#”;
在此行后面加内容如下:

LoadModule dav_svn_module modules/mod_dav_svn.so    
LoadModule authz_svn_module modules/mod_authz_svn.so   

添加以下内容到最后:

<Location /svn>

DAV svn
SVNParentPath D:/svn_repos

AuthzSVNAccessFile D:/svn_repos/conf/access.auth
Satisfy Any
Require valid-user

AuthType Basic
AuthName "Subversion repositories"
AuthUserFile  D:/svn_repos/conf/users.auth
Require valid-user
</Location>

修改端口,仅当80端口占用情况,修改“Listen 80”为“Listen 8080”

五.使用

  • 重启电脑或apache软件;
  • 网页访问http://your_ip/svn/my_project或http://your_ip:8080/svn/my_project;
  • TortoiseSVN右键checkout;
  • 新增类似my_project的仓库,只需修改控件权限即可,文件:D:\svn_repos\conf\access.auth;

linux 环境

一. 安装

安装apache2和subversion相关安装包。

sudo apt-get install apache2 subversion libapache2-svn python-subversion sendmail    

添加组subversion及用户模式设置。

sudo addgroup subversion;sudo usermod -G subversion -a www-data

二. 创建数据仓库

创建数据仓库及模式设置。
方法一(无邮件通知功能):

sudo svnadmin create /opt/svn_repos/my_project
sudo chown -R root:subversion /opt/svn_repos/my_project;sudo chmod -R g+rws

方法二(有邮件通知功能):
下载文件makesvn工具,然后解压, 进入文件夹,运行命令如下:

sudo mkdir /opt/svn_repos;./makesvn.sh /opt/svn_repos/ my_project

三. 配置数据仓库 conf

1. 创建配置文件夹

cd /opt/svn_repos/;sudo mkdir conf

2. 添加文件D:\svn_repos\conf\access.auth,添加内容如下:

[my_project:/]
meegoo=rw

含义:用户meegoo对my_project有读写权限。

3. apache账户管理

初次建立密码文件,前者为用户名称,后者为密码:

sudo htpasswd -c /opt/svn_repos/conf/dav_svn.passwd meegoo

添加其他用户,去掉-c参数:

sudo htpasswd    /opt/svn_repos/conf/dav_svn.passwd ming

四. 配置apache服务器

1. 修改apache配置文件

sudo vim /etc/apache2/mods-available/dav_svn.conf

ubuntu 10.04修改内容如下:

<Location /svn>
    DAV svn
    SVNParentPath /opt/svn_repos

    AuthType Basic
    AuthName "Subversion Repository"
    AuthUserFile /opt/svn_repos/conf/dav_svn.passwd
    AuthzSVNAccessFile /opt/svn_repos/conf/access.auth

    #<LimitExcept GET PROPFIND OPTIONS REPORT>
        Require valid-user
    #</LimitExcept> 

</Location>

ubuntu 12.04版本修改如下:

<Location /svn>
    DAV svn
    SVNParentPath /opt/svn_repos

    AuthType Basic
    AuthName "Subversion Repository"
    AuthUserFile /opt/svn_repos/conf/dav_svn.passwd
    <IfModule mod_authz_svn.c>
        AuthzSVNAccessFile /opt/svn_repos/conf/access.auth
    </IfModule>

    #<LimitExcept GET PROPFIND OPTIONS REPORT>
        Require valid-user
    #</LimitExcept> 
</Location>

修改加载文件:

sudo vim /etc/apache2/mods-enabled/dav_svn.load

添加内容:

# Only needed if you decide to do "per-directory" access control
LoadModule authz_svn_module /usr/lib/apache2/modules/mod_authz_svn.so

2. 测试svn服务器

重启服务器,使配置文件生效:

sudo /etc/init.d/apache2 restart

网页访问http://your_ip/svn/my_project,输入密码、访问。

使用技巧

  • 以二进制文件上传:
    svn propset svn:mime-type application/octet-stream filename
  • 去除文件的执行属性:
    svn propdel svn:executable filename.ext
  • 使用svn diff忽略空格、换行符区别的参数
    svn diff -r 3151 -x "-b --ignore-eol-style"

Comments