SVN
<h3><a href="http://svnbook.red-bean.com/">SVN指导中文版</a></h3>
<h3>sasl账号密码创建</h3>
<pre><code>sudo saslpasswd2 -c -f /etc/sasldb2 -u PaxSVNRepository username</code></pre>
<hr />
<h3>SVN迁移子目录</h3>
<blockquote>
<p>使用<code>svnrdump</code>远程导出指定目录所有历史,若在本机则直接使用<code>svnadmin dump</code>命令</p>
</blockquote>
<pre><code>svnrdump dump svn://172.16.2.211/cygnus/boot > boot.dump</code></pre>
<blockquote>
<p>使用<code>svndumpfilter</code>过滤指定目录版本记录,同时删除空的提交版本并重新排序</p>
</blockquote>
<pre><code>svndumpfilter --drop-all-empty-revs --renumber-revs include cygnus/boot < boot.dump > boot2.dump</code></pre>
<blockquote>
<p>导出并过滤指定目录下代码</p>
</blockquote>
<pre><code>svnadmin dump /data/svnroot/Software_WEB|svndumpfilter --drop-all-empty-revs --renumber-revs include PPM > PPM.dump</code></pre>
<blockquote>
<p>快速提取</p>
</blockquote>
<pre><code>#快速过滤出PPM/Disney PPM/Hertz目录,同时替换掉根目录PPM,并导出为dump文件
svndumpfilter --drop-all-empty-revs --renumber-revs \
include PPM/Disney PPM/Hertz < PPM.dump |\
sed 's/^Node-path: PPM\//Node-path: /g' \
> \PPM2.dump
#快速过滤出PPM/Disney PPM/Hertz目录,同时替换掉根目录PPM,并导至另一个新建仓库
svnadmin create /data/PPM
svndumpfilter --drop-all-empty-revs --renumber-revs \
include PPM/Disney PPM/Hertz < PPM.dump |\
sed 's/^Node-path: PPM\//Node-path: /g;s/^Node-copyfrom-path: PPM\//Node-copyfrom-path: /g' |\
svnadmin load /data/PPM
#导出并过滤为dump文件(通用格式,无视svn版本),方便传递迁移
svnadmin dump /data/svnroot/Software_WEB |\
svndumpfilter --drop-all-empty-revs --renumber-revs \
include PPM/Disney PPM/Hertz |\
sed 's/^Node-path: PPM\//Node-path: /g;s/^Node-copyfrom-path: PPM\//Node-copyfrom-path: /g' >\
/mnt/150/PPM2.dump
#注意:如下2个字段也需要进行替换,否则找不到复制及移动来源
#如下为文件路径标识
^Node-path: PPM
#如下为复制路径标识
^Node-copyfrom-path: PPM
#最好使用如下命令过滤下看还有哪些路径包含关键字,否则会导致转换失败
grep -a "\-path: " PPM2.dump|sed "/Node-path:/d;/Node-copyfrom-path:/d"</code></pre>
<blockquote>
<p>如需调整迁移后的目录结构,可使用<code>vim</code>编辑器替换如下内容后保存</p>
</blockquote>
<pre><code>vim boot2.dump
:%s/Node-path: cygnus\/boot/Node-path: u-boot/g</code></pre>
<blockquote>
<p>创建迁移后的目录</p>
</blockquote>
<pre><code>svnadmin create /data/svnroot/boot</code></pre>
<blockquote>
<p>重新将过滤处理后的文件导入新仓库</p>
</blockquote>
<pre><code>svnadmin load /data/svnroot/boot < boot2.dump</code></pre>
<h3>svn最新版本安装</h3>
<pre><code>cat << EOF > /etc/yum.repos.d/wandisco-svn.repo
[WandiscoSVN]
name=Wandisco SVN Repo
baseurl=http://opensource.wandisco.com/centos/\$releasever/svn-1.10/RPMS/\$basearch/
enabled=1
gpgcheck=0
EOF
yum remove subversion*;yum clean all;yum install subversion
</code></pre>