﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-藏经阁-文章分类-SVN</title><link>http://www.blogjava.net/zhouf/category/45698.html</link><description /><language>zh-cn</language><lastBuildDate>Sun, 25 Jul 2010 15:38:02 GMT</lastBuildDate><pubDate>Sun, 25 Jul 2010 15:38:02 GMT</pubDate><ttl>60</ttl><item><title>安装Eclipse SVN plugin(Subclipse)(转载)</title><link>http://www.blogjava.net/zhouf/articles/262061.html</link><dc:creator>ZhouFeng</dc:creator><author>ZhouFeng</author><pubDate>Thu, 26 Mar 2009 03:57:00 GMT</pubDate><guid>http://www.blogjava.net/zhouf/articles/262061.html</guid><wfw:comment>http://www.blogjava.net/zhouf/comments/262061.html</wfw:comment><comments>http://www.blogjava.net/zhouf/articles/262061.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/zhouf/comments/commentRss/262061.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/zhouf/services/trackbacks/262061.html</trackback:ping><description><![CDATA[这里介紹Eclipse的SVN Plugin，叫做Subclipse,官方网站的下载地址在<a href="http://subclipse.tigris.org/"><font color="#007799">http://subclipse.tigris.org/</font></a>，也提供了update site <a href="http://subclipse.tigris.org/update"><font color="#007799">http://subclipse.tigris.org/update</font></a>。<br />
Eclipse
的使用者可以通过Eclipse的插件自动下载和更新功能来安装这个插件，在Eclipse的菜单中选择Help-&gt;Software
Updates-&gt;Find and Install-&gt; Search for new features to install
-&gt;New Remote Site。URL中就输入<a href="http://subclipse.tigris.org/update"><font color="#007799">http://subclipse.tigris.org/update</font></a>，Eclipse就会自已安装上了.
<p>安装完成后，在Eclipse的plugins中就会多了5个包，命名为org.tigris.subversion.*的都应该是了。打开
Eclipse,window-&gt;show
view窗口中多了一个SVN文件夹，到此就证明svn插件成功的安装上了。具体的使用方法，在Eclipse的Help中有详细的帮助
Subclipse - Subversion Eclipse
Plugin，教你一步一步的使用SVN的客户端了。如果你对subversion想进行深入的了解，那么看看help中的Version
Control with
Subversion一定有所收获，通过本人的观察，这份文档和sbuversion安装文件中提供的官方文档一样，这里看起来就更舒服些了。
</p>
<img src ="http://www.blogjava.net/zhouf/aggbug/262061.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/zhouf/" target="_blank">ZhouFeng</a> 2009-03-26 11:57 <a href="http://www.blogjava.net/zhouf/articles/262061.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>SVN的Not authorized to open root of edit operation解决办法</title><link>http://www.blogjava.net/zhouf/articles/251635.html</link><dc:creator>ZhouFeng</dc:creator><author>ZhouFeng</author><pubDate>Fri, 16 Jan 2009 14:49:00 GMT</pubDate><guid>http://www.blogjava.net/zhouf/articles/251635.html</guid><wfw:comment>http://www.blogjava.net/zhouf/comments/251635.html</wfw:comment><comments>http://www.blogjava.net/zhouf/articles/251635.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.blogjava.net/zhouf/comments/commentRss/251635.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/zhouf/services/trackbacks/251635.html</trackback:ping><description><![CDATA[Subversion装了1.5.2版，乌龟SVN装的是1.5.1版本，可以通过乌龟正常访问到版本库，但当check out时却出现了"Not authorized to open root of edit operation"错误，上网搜索了一下，提供的解决版本如下：<br />
anon-access 属性对目录权限的影响<br />
你想将你的代码库开放给所有人访问，于是你就开放了匿名访问权限，在 svnserve.conf 文件中添加一行："anon-access=read"。可是对于部分目录，你又不希望别人看到，于是针对那些特别目录，你在 authz.conf 里面进行配置，添加了授权访问的人，并添加了"* ="标记。你认为一切OK了，可是你却发现，那个特别目录却无法访问了，总是提示"Not authorized to open root of edit operation"或者"未授权打开根进行编辑操作"。你再三检查你配置的用户名与密码，确认一切正确，还是无法解决问题<br />
原来，Subversion 有个小 bug ，当"anon-access=read"并且某个目录有被设置上"* ="标记，则会出现上述问题。这个 bug 在当前最新版本上（v1.4）还存在<br />
但我并没有设"*="这种访问方式，用户名、密码、目录访问都正确设置了。当把 anon-access=read 改成 anon-access=none 后，发现，真的可以正常访问了<br />
<img src ="http://www.blogjava.net/zhouf/aggbug/251635.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/zhouf/" target="_blank">ZhouFeng</a> 2009-01-16 22:49 <a href="http://www.blogjava.net/zhouf/articles/251635.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>在linux下安装配置svn独立服务器</title><link>http://www.blogjava.net/zhouf/articles/251476.html</link><dc:creator>ZhouFeng</dc:creator><author>ZhouFeng</author><pubDate>Thu, 15 Jan 2009 09:44:00 GMT</pubDate><guid>http://www.blogjava.net/zhouf/articles/251476.html</guid><wfw:comment>http://www.blogjava.net/zhouf/comments/251476.html</wfw:comment><comments>http://www.blogjava.net/zhouf/articles/251476.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/zhouf/comments/commentRss/251476.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/zhouf/services/trackbacks/251476.html</trackback:ping><description><![CDATA[subversion(以下简称svn)是近年来崛起的版本管理工具，是cvs的接班人。<br />
svn服务器有2种运行方式：独立服务器和借助apache。2种方式各有利弊。<br />
svn存储版本数据也有2种方式：BDB和FSFS。因为BDB方式在服务器中断时，有可能锁住数据，所以还是FSFS方式更安全一点。<br />
1. svn服务器安装操作系统: Redhat Linux <br />
<br />
AS4安装包获取:下载http://subversion.tigris.org/downloads/subversion-1.4.0.tar.gz和<br />
<br />
http://subversion.tigris.org/downloads/subversion-deps-1.4.0.tar.gz。编译:<br />
以root用户登录。<br />
将subversion-1.4.0.tar.gz和subversion-deps-1.4.0.tar.gz传到服务器。<br />
tar xfvz subversion-1.4.0.tar.gz<br />
tar xfvz subversion-deps-1.4.0.tar.gz<br />
cd subversion-1.4.0<br />
./configure --prefix=/opt/svn --without-berkeley-db --with-zlib<br />
(注：以svnserve方式运行，不加apache编译参数。以fsfs格式存储版本库，不编译berkeley-db)<br />
make clean<br />
make<br />
make install<br />
vi /etc/profile,在/etc/profile最后加入:<br />
PATH=$PATH:/opt/svn/bin<br />
export PATH<br />
测试:<br />
svnserve --version<br />
如果显示如下，安装成功:<br />
svnserve, version 1.4.0 (r21228)<br />
compiled Oct 12 2006, 10:18:56Copyright (C) 2000-2006 CollabNet.<br />
Subversion is open source software, see http://subversion.tigris.org/<br />
This product includes software developed by CollabNet (http://www.Collab.Net/).The following repository back-end (FS) modules are available:* fs_fs : Module for working with a plain file (FSFS) repository.<br />
2. svn配置<br />
建立版本库目录，可建多个：<br />
mkdir -p /opt/svndata/repos1<br />
mkdir -p /opt/svndata/repos2<br />
建立版本库:<br />
svnadmin create /opt/svndata/repos1<br />
svnadmin create /opt/svndata/repos2<br />
修改版本库配置文件:<br />
版本库1：<br />
vi /opt/svndata/repos1/conf/svnserve.conf<br />
内容修改为:<br />
[general]<br />
anon-access = none<br />
auth-access = write<br />
password-db = /opt/svn/conf/pwd.conf<br />
authz-db = /opt/svn/conf/authz.conf<br />
realm = repos1<br />
版本库2:<br />
vi /opt/svndata/repos2/conf/svnserve.conf内容修改为:<br />
[general]<br />
anon-access = none<br />
auth-access = write<br />
password-db = /opt/svn/conf/pwd.conf<br />
authz-db = /opt/svn/conf/authz.conf<br />
realm = repos2<br />
即除realm = repos2外，其他与版本库1配置文件完全相同。如果有更多的版本库，<br />
<br />
依此类推。配置允许访问的用户:<br />
vi /opt/svn/conf/pwd.conf<br />
为了简化配置，2个版本库共用1个用户配置文件。如有必要，也可以分开。注意：对用户配置文件的修改立即生效，不必重启svn。文件格式如下：<br />
[users]<br />
&lt;用户1&gt; = &lt;密码1&gt;<br />
&lt;用户2&gt; = &lt;密码2&gt;<br />
其中，[users]是必须的。下面列出要访问svn的用户，每个用户一行。示例：<br />
[users]<br />
alan = password<br />
king = hello<br />
配置用户访问权限:<br />
vi /opt/svn/conf/authz.conf<br />
为了简化配置，3个版本库共用1个权限配置文<br />
<br />
件/opt/svn/conf/pwd.conf。如有必要，也可以分开。文件中定义用户组和版本库目录权限。注意：<br />
* 权限配置文件中出现的用户名必须已在用户配置文件中定义。<br />
* 对权限配置文件的修改立即生效，不必重启svn。用户组格式：<br />
[groups]<br />
&lt;用户组名&gt; = &lt;用户1&gt;,&lt;用户2&gt;<br />
其中，1个用户组可以包含1个或多个用户，用户间以逗号分隔。版本库目录格式：<br />
[&lt;版本库&gt;:/项目/目录]<br />
@&lt;用户组名&gt; = &lt;权限&gt;<br />
&lt;用户名&gt; = &lt;权限&gt;　　其中，方框号内部分可以有多种写法:<br />
/,表示根目录及以下。根目录是svnserve启动时指定的，我们指定为/opt/svndata。这样，/就是表示对全部版本库设置权限。<br />
repos1:/,表示对版本库1设置权限<br />
repos2:/occi, ,表示对版本库2中的occi项目设置权限<br />
repos2:/occi/aaa, ,表示对版本库2中的occi项目的aaa目录设置权限　　权限主体可以是用户组、用户或*，用户组在前面加@，*表示全部用户。权限可以是w、r、wr和空，空表示没有任何权限。示例：<br />
[groups]<br />
admin = alan[/]<br />
@admin = rw[repos1:/occi/aaa]<br />
king = rw[repos2:/pass]<br />
king =<br />
删除无用文件:<br />
rm /opt/svndata/repos1/conf/authz<br />
rm /opt/svndata/repos1/conf/passwd<br />
rm /opt/svndata/repos2/conf/authz<br />
rm /opt/svndata/repos2/conf/passwd<br />
3. 启动svn<br />
建立启动svn的用户:<br />
useradd svn<br />
passwd svn<br />
根据提示为用户svn设置密码允许用户svn访问版本库:<br />
chown &#8211;R svn:svn /opt/svndata<br />
chown &#8211;R svn:svn /opt/data启动svn：<br />
su - svn -c "svnserve -d --listen-port 9999 -r /opt/svndata"<br />
其中：<br />
su &#8211; svn表示以用户svn的身份启动svn<br />
-d表示以daemon方式（后台运行）运行<br />
--listen-port 9999表示使用9999端口，可以换成你需要的端口。但注意，使用1024以下的端口需要root<br />
<br />
权限<br />
-r /opt/svndata指定根目录是/opt/svndata检查:<br />
ps &#8211;ef|grep svnserve如果显示如下，即为启动成功：<br />
svn　　　 6941　　 1　0 15:07 ?　　　　00:00:00 svnserve -d --listen-port 9999 -r <br />
<br />
/opt/svndata参考资料：<br />
http://www.gbunix.com/htmldata/2006_07/15/27/article_1337_1.html<br />
http://www.iusesvn.com/bbs/thread-157-1-1.html<br />
http://16hot.blog.isyi.com/post/1/552<br />
检测服务是否开启：netstat -ntlp如果看到3690的端口正常开放了，证明SVN启动了。]<br />
下面是机器上的端口显示:<br />
Active Internet connections (only servers)<br />
Proto Recv-Q Send-Q Local Address&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Foreign Address&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; State&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
<br />
PID/Program name<br />
tcp&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0 0.0.0.0:32769&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0.0.0.0:*&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; LISTEN&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
<br />
2611/rpc.statd<br />
tcp&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0 0.0.0.0:111&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0.0.0.0:*&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; LISTEN&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
<br />
2591/portmap<br />
tcp&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0 0.0.0.0:113&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0.0.0.0:*&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; LISTEN&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
<br />
2827/xinetd<br />
tcp&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0 127.0.0.1:631&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0.0.0.0:*&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; LISTEN&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
<br />
4860/cupsd<br />
tcp&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0 127.0.0.1:25&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0.0.0.0:*&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; LISTEN&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
<br />
2846/sendmail: acce<br />
tcp&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0 :::3690&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; :::*&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; LISTEN&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
<br />
5513/svnserve<br />
tcp&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0 :::22&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; :::*&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; LISTEN&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
<br />
2812/sshd<br />
下面这个就是了:<br />
tcp&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0 :::3690&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; :::*&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; LISTEN&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
<br />
5513/svnserve<br />
好了,svn已经架起来了<br />
<br />
<hr size="2" width="100%" />
<br />
在 Linux/Apache 2.2 上配置SVN服务器<br />
<br />
准备，下载所需要文件.<br />
检查已安装的 Apache2 是否已经安装了 mod_dav .<br />
编译SVN，遇到的问题和解决方法<br />
使用 默认文件系统(fsfs) 保存数据<br />
使用 Berkeley DB 保存数据<br />
配置Apache和SVN，测试.<br />
其它小结<br />
从Windows平台上数据转移<br />
配置文件,使用其支持对文件中的 $Id$ 标签每次提交的时候自动更新版本信息.<br />
基于路径的权限控制常用SVN命令<br />
相关资源* 准备，下载所需要文件.<br />
本文测试环境：ubuntu 6.06 LTS (kernel 2.6.15-25-k7，gcc-4.0.3) /ubuntu server (2.6.15-26-<br />
<br />
server,gcc-4.0.4)<br />
Subversion 1.3.2Apache 2.2.2最新的版本 Subversion 可以在这里找到 ：<br />
<br />
http://subversion.tigris.org/project_packages.html* 检查已安装的 Apache2 是否已经安装了 <br />
<br />
mod_dav .<br />
如果已经成功安装了Apache，使用 httpd -M 来查看有没有安装 dav_module，如果没有的话 必须附加 <br />
<br />
&#8216;&#8211;enable-dav&#8217; &#8216;&#8211;enable-dav-fs&#8217; 两个参数重新编译 Apache，否则即使编译通过了svn,apache也<br />
<br />
会启动不起来.如何编译 Apache 请参考我另外一篇文章.* 编译SVN，遇到的问题和解决方法.<br />
使用默认的文件系统保存数据.<br />
最终完整通过安装和测试的编译参数为：./configure --with-apxs=/usr/local/apache2/bin/apxs \<br />
--with-apr=/home/src/server/httpd-2.2.2/srclib/apr \<br />
--with-apr-util=/home/src/server/httpd-2.2.2/srclib/apr-utilmake<br />
make install其中 /home/src/server/ 为 httpd-2.2.2 源代码所在文件夹，根据实际情况调整一下.◆ <br />
<br />
遇到问题：1) --with-apr 和 --with-apr-util 如果没有加上的话，即使编译成功了也会出现Can't set position pointer in file &#8216;/home/svn/repos/db/revs/0&#8242;: Invalid argument<br />
这样的错误提示.2) 暂时不能使用 Berkeley DB [* 已解决]svn保存文件更新数据库的方法有两个，一种是直接使用 fs (filesystem)来保存,另一种是通过Oracle提供支持的开源数据库 Berkeley DB 进行保存。但是如果加上 &#8211;with-berkeley-db=/usr/local/BerkeleyDB.4.4 就会configure时就会报错.configure: error: APR-UTIL was installed independently, it won&#8217;t be possible to use the specified Berkeley DB: /usr/local/BerkeleyDB.4.4我想 apr-unit 暂时不支持吧，我们就用默认的fs好了.3) 在make 的时候可能会遇到缺少 srclib/apr/libapr-1.la，srclib/apr-util/libaprutil-1.la 两个文件，找不到而make error.解决办法：/usr/local/apache2/lib/ 中找到，将其复制到源代码文件夹相应的位置中.Update!!使用 BerkeleyDB 保存数据.<br />
1) 安装 BerkeleyDBcd /usr/local/src<br />
wget http://downloads.sleepycat.com/db-4.3.29.tar.gztar xzvf db-4.3.29.tar.gz<br />
cd /usr/local/src/db-4.3.29/build_unix<br />
../dist/configure --enable-compat185<br />
make<br />
make install2) 更新apr和apr-util源代码# 清理编译后的.la文件<br />
cd /usr/local/src/httpd-2.2.3make cleancd /usr/local/src/subversion-1.3.2<br />
rm -rf apr<br />
rm -rf apr-util<br />
cp -rf /usr/local/src/httpd-2.2.3/srclib/apr ./<br />
cp -rf /usr/local/src/httpd-2.2.3/srclib/apr-util/ ./3) 编译安装./configure --with-<br />
<br />
apxs=/usr/local/apache2/bin/apxs \<br />
--with-berkeley-db=/usr/local/BerkeleyDB.4.3 \<br />
--with-ssl<br />
make<br />
make install<br />
◆ 遇到问题：<br />
1) BerkeleyDB 版本不能大于 4.3.否则同样会出现以下错误.configure: error: APR-UTIL was <br />
<br />
installed independently, it won&#8217;t be<br />
possible to use the specified Berkeley DB: /usr/local/BerkeleyDB.4.4<br />
主要是apr-util 暂时不支持4.4的版本.2) 必须更新apr，apr-util 源代码.<br />
subversion-1.3.2 自带的 apr-util 的版本是0.9.6的,必须升级为 1.2.7 虽然能编译过去。但在 svn <br />
<br />
checkout 的时候会提示svn: REPORT request failed on &#8216;/!svn/vcc/default&#8217;<br />
svn: REPORT of &#8216;/!svn/vcc/default&#8217;: Could not read status line: connection was closed by <br />
<br />
server.<br />
这个问题困扰了我很长时间，Google和官方论坛都无结果。后来昨天竟然自己无意中解决了，感动的得哭了:)* 配置Apache和SVN，测试<br />
成功编译svn后会在 httpd.conf 中自动加上LoadModule dav_svn_module modules/mod_dav_svn.so<br />
LoadModule authz_svn_module modules/mod_authz_svn.so<br />
两个模块，没有的话，自行加上或检测是否真的编译成功.假设我们现在要将一个名为 Lair 的项目导入<br />
<br />
到 SVN中1). Apache的配置在 conf/httpd.conf 或 conf/extra/httpd-vhosts.conf 中加入<br />
&lt;Location /svn/Lair&gt;DAV svn<br />
SVNPath /home/svn/Lair<br />
&lt;/Location&gt;<br />
可以参考以下apache的配置，实现数据加密传输，用户身份验证.Listen 443AddType <br />
<br />
application/x-x509-ca-cert .crt<br />
AddType application/x-pkcs7-crl .crl.SSLPassPhraseDialog exec:/etc/sendsslpwd<br />
SSLSessionCache shmcb:/usr/local/apache2/logs/ssl_scache(512000)<br />
SSLSessionCacheTimeout 300<br />
SSLMutex file:/usr/local/apache2/logs/ssl_mutex&lt;VirtualHost _default_:443&gt;<br />
DocumentRoot /var/SVNRoot<br />
ServerName svn.yousite.com:443<br />
ServerAdmin webmaster@yousite.com<br />
&lt;Location /&gt;DAV svn<br />
SVNPath /var/SVNRoot<br />
AuthzSVNAccessFile /etc/svnserve.conf<br />
Satisfy Any<br />
AuthType Basic<br />
AuthName &#8220;yousite SVN Repository&#8221;<br />
AuthUserFile /etc/httpd-passwords.txt<br />
Require valid-user&lt;/Location&gt;<br />
SSLEngine on<br />
SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL<br />
SSLCertificateFile /etc/ssl/server.crt<br />
SSLCertificateKeyFile /etc/ssl/server.key&lt;/VirtualHost&gt;更详细的配置说明文档 <br />
<br />
http://svnbook.red-bean.com/nightly/en/svn.ref.mod_dav_svn.conf.html2). 配置，并且测试SVN，创建一个新用户,用了保存仓库.<br />
useradd -m svn<br />
创建一个新模块su daemon (apache是以daemon用户运行的,所以要切换身份，否则可能会报目录访问权限错误)<br />
svnadmin create --fs-type fsfs /home/svn/Lair<br />
导入原来的项目svn import /var/www/Lair http://localhost/svn/Lair -m &#8216;Initial import&#8217;重新建<br />
<br />
立工作目录rm -rf /var/www/Lair (注意备份!!)<br />
svn checkout http://localhost/svn/Lair<br />
测试打开 http://localhost/svn/Lair如能看到一个你项目录列表，说明您成功了。<br />
* 其它小结<br />
数据转移:从 Windows 平台 SVN 服务器转移<br />
如果windows svn储存的格式也是dbd的话，直接将SVN的文件夹copy过来即可.然后<br />
执行 svnadmin recover /var/SVNRoot 检查一下数据库是否损坏.最后注意权限,确保 db 目录下的所有<br />
<br />
文件可写。chmod 755 db<br />
chmod 666 db/*<br />
否则checkout时出现以下错误，多数是因为文件或者目录权限问题引起的，可以尝试用 chown 或者 <br />
<br />
chmod 命令修改一下权限&lt;m:human-readable errcode=&#8221;160029&#8243;&gt;Could not open the requested SVN <br />
<br />
filesystem<br />
&lt;/m:human-readable&gt;&lt;m:human-readable errcode=&#8221;13&#8243;&gt;<br />
Could not open the requested SVN filesystem<br />
&lt;/m:human-readable&gt;另外一种方法没有测试过，原理大致和mysqldump一样，将svn导出为文本文件，然<br />
<br />
后重新导入，好处是可以避免因为存储格式不同而导致的数据转移困难。# dump data to file <br />
<br />
(assuming a repo @ c:\repo):svnadmin dump c:\repo &gt; c:\repo.txt<br />
# Copy the file over to linux:<br />
mkdir /repo<br />
svnadmin create /repo<br />
svnadmin load /repo &lt; /repo.txt<br />
设置访问控制当 httpd.conf 中 设置 AuthzSVNAccessFile 时，<br />
<br />
可以设置不同用户对不同目录的访问控制.以下是一个例子.[groups]<br />
root = admin.root<br />
web = user1,user2<br />
soft = user3,user4[/]<br />
@root = rw[/www]@web = rw[/soft]<br />
@soft = rw详细的说明文档：http://svnbook.red-bean.com/nightly/en/svn.serverconfig.httpd.html<br />
<br />
配置文件，使用其支持对文件中的 $Id$ 标签每次提交的时候自动更新版本信息(自动属性).Windows <br />
<br />
: C:\Documents and Settings\%USERNAME%\Application Data\Subversion\config<br />
Linux : ~\.subversion\config[miscellany]enable-auto-props = yes<br />
[auto-props]<br />
*.php=svn:keywords=Id<br />
*.html=svn:keywords=Id&gt;&gt; 关于自动属性的更高级讨论■ 几条常用svn 命令<br />
svn update<br />
svn add &#8220;filename&#8221;<br />
svn commit———————&#8211;<br />
Change Log:2006-08-14 neon库subversion已经自带,不需要在单独安装,添加-with-ssl即可使用svn对ssl支持.<br />
2006-08-10 补充自动属性的说明.<br />
2006-08-08 加入关于目录访问验证的说明.<br />
2006-08-07 httpd,2.2.3测试依然有效，解决bdb数据库的支持问题，添加从Windows到Linux下的数据转移方案。<br />
2006-07-25 看到到.声仔对 Can&#8217;t set position pointer in file 另一种解决方案,我当时也测试了，好像没有成功。不想用apache源代码编译的朋友可以也测试一下<br />
&nbsp;<br />
<br />
<br />
<img src ="http://www.blogjava.net/zhouf/aggbug/251476.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/zhouf/" target="_blank">ZhouFeng</a> 2009-01-15 17:44 <a href="http://www.blogjava.net/zhouf/articles/251476.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>