<?xml version="1.0" encoding="UTF-8"?> <rss
version="2.0"
xmlns:content="http://purl.org/rss/1.0/modules/content/"
xmlns:wfw="http://wellformedweb.org/CommentAPI/"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:atom="http://www.w3.org/2005/Atom"
xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
><channel><title>群英汇博客 &#187; Subversion</title> <atom:link href="http://blog.ossxp.com/category/scm/svn/feed/" rel="self" type="application/rss+xml" /><link>http://blog.ossxp.com</link> <description></description> <lastBuildDate>Wed, 14 Sep 2011 03:52:03 +0000</lastBuildDate> <generator>http://wordpress.org/?v=2.9.2</generator> <language>en</language> <sy:updatePeriod>hourly</sy:updatePeriod> <sy:updateFrequency>1</sy:updateFrequency> <item><title>Redmine 和 subversion 版本库整合的问题</title><link>http://blog.ossxp.com/2010/11/2080/</link> <comments>http://blog.ossxp.com/2010/11/2080/#comments</comments> <pubDate>Wed, 17 Nov 2010 00:42:52 +0000</pubDate> <dc:creator>蒋 鑫</dc:creator> <category><![CDATA[Subversion]]></category> <category><![CDATA[项目管理]]></category> <category><![CDATA[redmine]]></category><guid
isPermaLink="false">http://blog.ossxp.com/?p=2080</guid> <description><![CDATA[有网友问：
请问，如果我的svn是在另外一台服务器，也通过HTTPS能访问了，在redmine还要做什么设置吗？我输入https的地址，但是redmine始终无法找到svn代码库
我先说一下在 Redmine 中通过 HTTP 协议访问远程 Subversion 版本库
我们最早研究的 Redmine，大概是 Redmine 0.8.5，通过  http 协议配置远程版本库，Subversion 的提交总是不能被 Redmine 获取。在排除了 Subversion 授权和认证的可能原因之后，我们发现问题出在 Redmine 调用 svn 命令被阻塞。
即：必须先在服务器以 Apache 的用户（www-data）访问 subversion（HTTP 协议），使用 SVN 命令行。在访问过程中，会出现交互性的提示：“是否在磁盘缓存明文口令之类的提示”，选择“是”之后， Redmine 就可以正常连接到 Subversion 服务器了。
通过研究代码，我们发现 Redmine 直接调用 Subversion 命令来获取 Subversion 的日志和提交之类，如果在命令行中传递参数：“&#8211;no-auth-cache” 等就可以避免因为 redmine 调用 svn 命令被阻塞。
Redmine 0.8.6 的改进
Redmine 0.8.6 改进了这个问题，和 0.8.5 的代码差异：
$ git diff 661bd08^ 661bd08 -- subversion_adapter.rb
diff --git <a
href="http://blog.ossxp.com/2010/11/2080/" class="more-link">阅读全部内容 &#187;</a>]]></description> <wfw:commentRss>http://blog.ossxp.com/2010/11/2080/feed/</wfw:commentRss> <slash:comments>13</slash:comments> </item> <item><title>Redmine 和 Subversion主备模式的整合</title><link>http://blog.ossxp.com/2010/11/2053/</link> <comments>http://blog.ossxp.com/2010/11/2053/#comments</comments> <pubDate>Mon, 08 Nov 2010 06:58:22 +0000</pubDate> <dc:creator>蒋 鑫</dc:creator> <category><![CDATA[Subversion]]></category> <category><![CDATA[项目管理]]></category> <category><![CDATA[redmine]]></category><guid
isPermaLink="false">http://blog.ossxp.com/?p=2053</guid> <description><![CDATA[当两个或多个 Subversion 服务器互为主备服务器时，Redmine 部署在其中一台服务器上，如何才能让 Redmine 的版本库的授权能够正确保持呢？前提是 Subversion 的授权只能在主服务器上进行。
下面是部署的逻辑图：
如图所示：Redmine 部署于 主机A 中。
蓝线代表读操作，红线代表写操作。
Redmine 的各个项目的版本库指向不同的 svn 根路径（svnroot1 和 svnroot2）下的版本库。
Redmine 项目的版本库配置的授权文件，来自不同的授权文件。如 config1 或者 config2。]]></description> <wfw:commentRss>http://blog.ossxp.com/2010/11/2053/feed/</wfw:commentRss> <slash:comments>1</slash:comments> </item> <item><title>关于限制低版本 Subversion 写操作问题的回复</title><link>http://blog.ossxp.com/2010/10/2000/</link> <comments>http://blog.ossxp.com/2010/10/2000/#comments</comments> <pubDate>Wed, 20 Oct 2010 10:23:37 +0000</pubDate> <dc:creator>蒋 鑫</dc:creator> <category><![CDATA[Subversion]]></category> <category><![CDATA[版本控制]]></category><guid
isPermaLink="false">http://blog.ossxp.com/?p=2000</guid> <description><![CDATA[有网友提问：
我在百度文库中看到贵公司发表的一篇文章《开源版本控制SVN 树冲突、目录丢失问题及解决机制探讨》。在文中有提到一个事情是，可以在svn的hook中设置禁止低于某版本的客户端提交操作，不知道具体的脚本是如何实现，还请指教，谢谢。
另外关于svn mergeinfo的问题，对于刚刚创建完的mergeinfo信息是纯在的，但是在开发过一段时间后，这个信息就丢失了，导致在合并的时候出现找不到祖先的错误。（备份库中的mergeinfo信息还是存在的）。不知道这个问题的发生时什么原因呢？
我认为并非因为有人使用了低版本（&#60;1.5）的 SVN 客户端导致了 svn:mergeinfo 属性的丢失。因为低版本的 SVN 客户端，不了解 svn:mergeinfo 属性，又怎么能够会删除该属性呢？
使用低版本 SVN 客户端的副作用主要是在执行 merge 的过程中，不能将合并操作记录在 svn:mergeinfo 中，而不是会删除 svn:mergeinfo 属性。
实际上找到罪魁祸首很容易，因为 svn:mergeinfo 是受版本控制的属性，可以通过 svn log 命令查到何时，何人，何故删除了 svn:mergeinfo 属性。只需要执行下面的命令：
$ svn log -v  PATH/TO/MERGE/ROOT/DIR提到的钩子，对于你的情况：配置邮件通知，及时获取版本库变更通知。
修改 post-commit 和 post-revprop-change 钩子脚本，在有代码/版本控制的属性/非版本控制的属性被修改的时候，发送邮件通知
禁止低版本客户端对 SVN 版本库执行写操作
修改 start-commit 脚本。在 SVNBOOK 中有详细的说明。
你也可以参照我写的 pySvnManager 项目，不过其中的钩子脚本为了支持图形化配置，比较复杂。
http://pysvnmanager.svn.sourceforge.net/viewvc/pysvnmanager/trunk/pysvnmanager/hooks/init/hook1.5/start-commit?revision=176&#38;view=markup]]></description> <wfw:commentRss>http://blog.ossxp.com/2010/10/2000/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Subversion 镜像写代理的配置注意事项</title><link>http://blog.ossxp.com/2010/09/1982/</link> <comments>http://blog.ossxp.com/2010/09/1982/#comments</comments> <pubDate>Sat, 25 Sep 2010 13:25:55 +0000</pubDate> <dc:creator>蒋 鑫</dc:creator> <category><![CDATA[Subversion]]></category> <category><![CDATA[版本控制]]></category><guid
isPermaLink="false">http://blog.ossxp.com/?p=1982</guid> <description><![CDATA[可以用 Subversion 镜像的方式实现容灾，一般无需配置复杂的写代理（Write-through proxy）在镜像端提供相同授权的访问
禁止除了同步管理员帐号之外的写权限，通过 ReadonlySvnMirror 设定即可但是分布式团队，需要同时在一个版本库工作：为了提高读取速度，通过镜像实现各个异地团队拥有相同的本地读取速度
但只能在一个版本库写，因此只有有一个团队用本地的速度写版本库
实际上因为提交后还要进行异地版本库同步，因此写本地版本库速度也会有延迟。延迟出现在提交后的远程同步。
另外的团队要设置写代理，这样使用读取本地镜像时相同的 URL 实现版本库的写操作但是版本库写代理的设置还是相当复杂，而且需要管理员大量的手工操作才能完成。注意事项有：
要为 HTTPS 虚拟机打开 SSLProxyEngine
如果要使用 https 协议代理提交，就需要打开 https 协议的 Apache 虚拟主机配置，启用 SSLProxyEngine 设置。
SSLEngine on
SSLProxyEngine onSubversion写代理的配置不能使用 SVNParentPath
SVNParentPath 是管理员最喜欢用的指令，只要设定为版本库的根，不必在为新建版本库设置 &#60;Location&#62; 配置小节。
但是对于 Subversion 写代理，必须使用 SVNPath 来版本库的实际部署路径，这是因为：写代理需要配置 SVNMasterURI，但是 SVNMasterURI 只能设置一个 URL
即 SVNMasterURI 要可 SVNPath 配对使用，而不能和 SVNParentPath 一起使用。
因此需要为需要进行写代理的版本库逐一进行设置。TODO：修改 mod_dav_svn 的代码，使得 SVNMasterURL 可以和 SVNParentPath 一起用，即 SVNMasterURI 是一个指向版本库根的 URL
基于 SVNParentPath 的版本库和单独配置的写代理版本库不能在有重叠的 location 中混搭
考虑是否可以使用如下有重叠的Location中进行混搭，既方便本地主版本库的维护，又方便同样域名和路径前缀的写代理版本库？
&#60;Location /svn/&#62;
  DAV svn
  <a
href="http://blog.ossxp.com/2010/09/1982/" class="more-link">阅读全部内容 &#187;</a>]]></description> <wfw:commentRss>http://blog.ossxp.com/2010/09/1982/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Subversion 管理后台升级</title><link>http://blog.ossxp.com/2010/09/1977/</link> <comments>http://blog.ossxp.com/2010/09/1977/#comments</comments> <pubDate>Sat, 25 Sep 2010 10:40:58 +0000</pubDate> <dc:creator>蒋 鑫</dc:creator> <category><![CDATA[Subversion]]></category> <category><![CDATA[版本控制]]></category> <category><![CDATA[pySvnManager]]></category><guid
isPermaLink="false">http://blog.ossxp.com/?p=1977</guid> <description><![CDATA[Subversion 管理后台最近版本升级解决两个主要问题：Subversion版本库同步的同步锁清除，以及 IE8兼容性问题。
Subversion 版本库同步时同步锁的清除
Subversion版本库容灾备份，主版本库提交时，会临时在镜像版本库的 rev0 的版本属性中添加 svn:sync-lock 和 svn:sync-currently-copying 两个临时属性作为同步锁，避免针对一个版本库同时有多个同步进程。这么设计是因为 SVN 镜像可以是远程调用。
在特定情况下，会造成死锁：同步开始后，突然的网络中断，导致同步失败，而同步的目标版本库（镜像版本库）的 rev0的锁尚未删除。
再次同步时，由于 rev0 的版本属性中的锁的存在，导致同步失败。
Subversion 的主从备份失效。死锁发生后，客户端的感受客户端提交会发现速度很慢，会被阻塞10秒钟以上
实际上，提交已经完成，在进行主从同步时被阻塞
Subversion的同步一旦发现被同步锁阻塞时，会持续尝试10次，每次间隔1秒钟最新的同步机制，能够自动判断锁的有效性，避免主从同步失效在同步发起时，会记录同步进程的 PID 到一个临时文件
当发现镜像中存在锁的时候，会检测本地锁文件，以及是否有对应的同步进程
如果发现锁是僵尸锁，则删除镜像版本库rev0 中的僵尸锁，继续执行版本库同步
如果同步过程有错误发生时，会通过钩子脚本（post-commit 或 post-revprop-change）将同步的错误会直接通过用户提交通知界面进行显示。
管理员也可以设置 debug 诊断标志，当 debug 打开，同步成功的信息也会以“错误通知”的方式显示在提交后的通知界面中。（同步成功的消息显示为控制台错误，这是 Subversion 的 post-commit 等脚本的设计机制决定的）同时，还为 subversion 钩子提供手工版本库同步的接口：
（其中 /opt/svn/svnroot 是版本库的根目录）显示版本库的状态：
$ sudo python /etc/subversion/hooks/scripts/svn_mirror.py  /opt/svn/svnroot/手工对配置了容灾的版本库进行同步：
$ sudo python /etc/subversion/hooks/scripts/svn_mirror.py  sync /opt/svn/svnroot/IE8 兼容性问题
部分界面在 IE8 不能正常显示。当打开 IE8 浏览器的“兼容视图”，则能够正常显示。
最终定位到是元素显隐，IE8的支持和以前不同。原来的实现是通过设置 element.style.visibility 为 &#8216;hidden&#8217; 或者 &#8216;visible&#8217; 实现 <a
href="http://blog.ossxp.com/2010/09/1977/" class="more-link">阅读全部内容 &#187;</a>]]></description> <wfw:commentRss>http://blog.ossxp.com/2010/09/1977/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>关于 pySvnManager 的回复</title><link>http://blog.ossxp.com/2010/09/1948/</link> <comments>http://blog.ossxp.com/2010/09/1948/#comments</comments> <pubDate>Wed, 15 Sep 2010 03:02:15 +0000</pubDate> <dc:creator>蒋 鑫</dc:creator> <category><![CDATA[Subversion]]></category> <category><![CDATA[版本控制]]></category> <category><![CDATA[pySvnManager]]></category><guid
isPermaLink="false">http://blog.ossxp.com/?p=1948</guid> <description><![CDATA[最近有网友问 pySvnManager 的问题，我把解答放到了这里
关于软件安装
问：
看到你开发的这个pysvnmanager很不错，比较适合于svn的 账户 权限管理，我的操作系统是centos，用easy_install安装的是0.4版本，不知道 哪里 有0.5版本下载呢？
答：
直接从 sourceforge.net 上下载源代码安装吧
安装出错
问：
我下载了源码，按照README中 的指导进行安装$ cd config
$ make
$ python setup.py compile_catalog
$ paster serve --reload develogment.ini运行却报错如下：
/usr/lib/python2.4/site-packages/PasteScript-1.7.3-py2.4.egg/paste/script/pluginlib.py:81: UserWarning: Unbuilt egg for pySvnManager [unknown version] (/usr/local/pysvnmanager)
pkg_resources.require(plugin)Traceback (most recent call last):
File "/usr/bin/paster", line 7, in ?
.....答复：
应该是依赖的 pylons 框 架未安装。
其实有源代码，你可以编译出 egg 包哇。$ python setup.py bdist_egg然后，就可以安装 dist 目录 下的 egg 包，安装 egg 包会自动安装依赖的 pylons 框架。
你看到 <a
href="http://blog.ossxp.com/2010/09/1948/" class="more-link">阅读全部内容 &#187;</a>]]></description> <wfw:commentRss>http://blog.ossxp.com/2010/09/1948/feed/</wfw:commentRss> <slash:comments>13</slash:comments> </item> <item><title>Subversion管理后台增加对SVN容灾的支持</title><link>http://blog.ossxp.com/2010/08/1888/</link> <comments>http://blog.ossxp.com/2010/08/1888/#comments</comments> <pubDate>Sun, 29 Aug 2010 08:13:52 +0000</pubDate> <dc:creator>蒋 鑫</dc:creator> <category><![CDATA[Subversion]]></category> <category><![CDATA[版本控制]]></category><guid
isPermaLink="false">http://blog.ossxp.com/?p=1888</guid> <description><![CDATA[群英汇Subversion版本控制系统提供的基本服务，实际上已经包含了简单的容灾实现：在本机使用 gistore 进行数据备份
在备机上用 git pull 进行每日一次的数据同步这个方法对于大多数公司，对于非核心数据的容灾备份已经足够，但是对于代码，不同的公司有着不同的敏感度，可能每日一次的备份就不合适了。
最近在给一个客户进行SVN版本控制系统的实施时，就碰到了SVN服务器间建立镜像和实时备份的需要两个异地的开发团队，每个团队工作在不同的本地版本库，可能会参考（读取）异地不同版本库的内容
异地团队中间通过无线网桥互联，互联网桥的通讯质量易受到环境、气候的影响
如果两个异地的SVN服务器能够互做镜像，可以实现双机热备
一个团队可以在本地的主版本库中读写，一旦有数据写入本地版本库，就会同步到无线网桥另外一端的版本库。反之亦然。
由于本地还提供无线网桥另外一端版本库的镜像，因此访问远程版本库可以改用本地镜像进行访问，实现本地读取速度。
如果需要写入，配置 SVN反向代理，实现透明的远程写入。Subversion可以使用 svnsync 这一工具实现版本库的远程镜像，但是如果使用手工配置，对于客户数量众多的版本库，难以维护。加之很多版本库本身很大，从头建立同步可能会非常缓慢。
我们通过在SVN管理后台增加了一对儿插件，实现了对SVN容灾（镜像）的图形化配置界面。为同步用户建立用户帐号，并授权
在使用 svnsync 将本地版本库实时同步到远程版本库时，需要使用具有完全读写权限的帐号来完成对远程版本库的同步。
因此需要事先建立svn同步用户帐号，并在镜像的目标版本库对该帐号进行授权。在用户管理平台，创建专门进行 svn 数据同步的用户帐号
不要将该用户加入任何用户组，即该用户禁止自行更改口令
因为该用户的口令更改，将破坏已经配置好的数据同步
使用SVN管理后台，对该用户授权，使其可以读写整个版本库（镜像的目标版本库）镜像版本库的配置
为镜像版本库配置 ReadonlySvnMirror 插件，如下：本例中，镜像SVN库的服务器地址为： http://svn2.moon.ossxp.com/svn/omed
该版本库只需要安装一个插件，即 ReadonlySvnMirror 插件
本例中，配置 Svnsync 管理员为 svnmirror
含义为只有用户 svnmirror 可以对该版本库进行提交，其它用户不能在该版本库中提交源版本库的配置
为源版本库配置 SvnSyncMaster 插件本例中，omed的主版本库地址为 http://svn.moon.ossxp.com/svn/omed，该版本库将向 http://svn2.moon.ossxp.com/svn/omed 发起实时的数据同步
本例中，发起同步的用户名为 svnmirror，该用户名和在svn2镜像服务器端的 ReadonlySvnMirror 插件配置的 svnsync 管理员用户名保持一致
用户口令是在用户管理平台为该用户(svnmirror)设置的口令，尽量选用长的口令
在“下游 SVN 镜像 URL”中输入镜像SVN版本库URL地址，每个一行。对于本例，输入地址：
http://svn2.moon.ossxp.com/svn/omed镜像同步初始化
在SVN主版本库中安装 SvnSyncMaster 插件时，可能会遇到如下错误403错误，无权访问版本库：可能是镜像服务器的版本库尚未对同步用户授权
403错误，无权访问版本库：可能是镜像服务器的版本库URL输入错误，错误的URL当然是没有授权的了
版本库尚未建立：如果镜像的目标版本库尚未建立，则不能在目标版本库记录同步信息也不能建立同步
版本库UUID不匹配：镜像初始化，会检查源版本库和目标版本库的UUID是否一致，如果不一致，可能会导致版本库同步的张冠李戴
证书不被信任或者证书签名者不被信任：换用 http 协议试试其它在配置相关插件之前，可以先通过拷贝方式将目标版本库复制到镜像服务器中使用 scp 或者 rsync 的方式将主版本库复制到镜像服务器更直观，速度也更快
可以保证主版本库和镜像版本库的UUID保持一致
数据库复制完毕后，要修改镜像版本库的目录和文件的属主及权限。应该属于 www-data 用户
配置 SvnSyncMaster 插件，会自动根据当前镜像服务器端的版本号确定同步的进度，建立镜像关系注意：不要在同步已经建立后再使用rsync。如果在镜像关系已经建立后，用rsync进行数据同步，会导致：版本库插件配置被覆盖。因为版本库插件的配置位于版本库 conf/hooks.ini 文件中
版本库镜像信息被覆盖。因为版本库镜像信息保存在 rev0 的版本属性中]]></description> <wfw:commentRss>http://blog.ossxp.com/2010/08/1888/feed/</wfw:commentRss> <slash:comments>12</slash:comments> </item> <item><title>爱上Git——《Git培训讲义》摘录</title><link>http://blog.ossxp.com/2010/08/1864/</link> <comments>http://blog.ossxp.com/2010/08/1864/#comments</comments> <pubDate>Tue, 17 Aug 2010 10:04:15 +0000</pubDate> <dc:creator>蒋 鑫</dc:creator> <category><![CDATA[Git]]></category> <category><![CDATA[Subversion]]></category> <category><![CDATA[版本控制]]></category> <category><![CDATA[《Got Git》]]></category><guid
isPermaLink="false">http://blog.ossxp.com/?p=1864</guid> <description><![CDATA[群英汇的开源版本控制系统服务和咨询主要是基于Subversion，群英汇的开源项目管理系统平台主要集成的也是Subversion。但是我们公司（群英汇）内部的开发一直在使用Git，所以实际上，我们在Git上也有着丰富的使用和管理经验。
最近一个客户选择了我们提供Git的培训和部署服务，于是从上周开始着手准备《Git培训讲义》。
这个客户是有着实际的需求，才不得不从 Subversion 迁移到 Git，虽然只是公司的部分项目组。
《Git培训讲义》中开头有一章，我给它命名为“爱上Git”，抓眼球是其次，主要是先让用户能够立刻“爱上Git”。爱上Git(1): 原位版本库创建需求：要对部署的文件进行原位修改，记录变更并以 patch 形式导入正式版本库要是使用SVN 该怎么办呢？
$ svnadmin create /path/to/repos
$ svn checkout file:///path/to/repos
$ svn add *
$ svn commit
思考： 引入.svn 目录，在 Web 服务器上的风险...Git 就简单多了:
git init
git add .
git commit爱上Git(2): 重写提交说明需求：提交说明忘了添加bugid, 或者bugid 写错了，需要重写 commit log
要是使用SVN 该怎么办呢？管理员开放版本属性编辑权限
svn ps &#8211;revprop -r HEAD svn:log &#8220;new log message&#8230;&#8221;
警告：不要改错版本&#8230;Git 就简单多了:对于当前提交
git ci --amend对于历史提交
git rebase -i &#60;commit-id&#62;^
提示：使用 reword 子命令爱上Git(3): 撤销提交需求：提交的数据包含一个不应该检入的 .zip 大文件，浪费空间和检出时间
要是使用SVN 该怎么办呢？管理员重整版本库
svnadmin dump
svndumpfilter
svnadmin <a
href="http://blog.ossxp.com/2010/08/1864/" class="more-link">阅读全部内容 &#187;</a>]]></description> <wfw:commentRss>http://blog.ossxp.com/2010/08/1864/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>pySvnManager 0.5 升级指引</title><link>http://blog.ossxp.com/2010/08/1832/</link> <comments>http://blog.ossxp.com/2010/08/1832/#comments</comments> <pubDate>Mon, 09 Aug 2010 01:54:08 +0000</pubDate> <dc:creator>蒋 鑫</dc:creator> <category><![CDATA[Subversion]]></category> <category><![CDATA[pySvnManager]]></category><guid
isPermaLink="false">http://blog.ossxp.com/?p=1832</guid> <description><![CDATA[对于不能提供 SSH 远程登录服务器的用户，可以参照本文进行 pySvnManager 的升级。关于 pySvnManager 的新功能，参照：《pySvnManager新功能：LDAP用户同步》
升级的步骤简单的说就是：备份 -&#62; 软件升级 -&#62; 重启服务
数据备份
你可以备份 /opt/pysvnmanager 整个目录（主要是下面的 sites 目录）。
$ sudo cp -a /opt/pysvnmanager /opt/pysvnmanager.old如果使用 gistore 备份，也可以执行命令：
$ sudo gistore commit-all -v软件升级首先更新 APT 源，以便 Debian/Ubuntu 能够感知上游软件的更新。
$ sudo aptitude update升级 pysvnmanager
$ sudo aptitude install pysvnmanager升级过程中 aptitude 命令可能会显示或者询问一些升级策略。例如：提示安装 pysvnmanager-deploy-virt 包，并卸载原来安装的 pysvnmanager-deploy-sys 包。这是因为：pysvnmanger 软件包实际上包含了下列组件包：pysvnmanager ：不包含实际数据，仅用于确立包的依赖关系。必须安装 pysvnmanager-common 包，以及pysvnmanager-deploy-sys 或者 pysvnmanager-deploy-virt 包中的任何一个。
pysvnmanager-common ： 主要的源代码和执行脚本都在这个包中。
pysvnmanager-deploy-sys ： 使用系统提供的第三方软件包，使得 <a
href="http://blog.ossxp.com/2010/08/1832/" class="more-link">阅读全部内容 &#187;</a>]]></description> <wfw:commentRss>http://blog.ossxp.com/2010/08/1832/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>pySvnManager 新功能：LDAP用户同步</title><link>http://blog.ossxp.com/2010/08/1817/</link> <comments>http://blog.ossxp.com/2010/08/1817/#comments</comments> <pubDate>Sun, 08 Aug 2010 10:58:49 +0000</pubDate> <dc:creator>蒋 鑫</dc:creator> <category><![CDATA[Subversion]]></category> <category><![CDATA[新闻]]></category> <category><![CDATA[pySvnManager]]></category><guid
isPermaLink="false">http://blog.ossxp.com/?p=1817</guid> <description><![CDATA[pySvnManager 升级到 0.5 版本，引入了数据库支持，数据库主要用于保存和 LDAP 用户帐号同步的用户帐号信息。
数据库采用 sqlite 数据库（如果需要也可以使用其它类型数据库），无须手动创建数据库，在 pySvnManager 运行时，会根据需要自动创建数据库。
在没有使用 LDAP 用户信息之前，pySvnManager 是读取 SVN 授权文件，从该授权文件中获取用户名单并显示。可以看出这种实现的问题是：在权限检查的用户列表中，只能看到用户登录ID，而看不到用户 ID 对应的用户名
显示的用户帐号很少（只有在 SVN 授权文件中引用的用户帐号才能显示）
为新用户授权，如果用户不在授权文件中，需要手工输入用户名，容易出错。pySvnManager 0.5 增加了内置数据库和LDAP用户同步功能之后，再看 pySvnManager 中显示的用户列表：你会发现新版本的用户列表（已经完成和LDAP同步）：除了显示用户ID外，还显示用户名
显示的用户多了很多，除了在 SVN 授权文件中引用到的用户外，LDAP 中授权的 SVN 用户也显示出来了
在为新用户授权时，不必手工输入用户，只需要进行一次 LDAP 用户同步，用户帐号信息自动显示出来。那么如何进行LADP 同步呢？
我们把 LDAP 用户同步的按钮放在“角色管理”界面，只要点击其中的“和LDAP用户同步”图标按钮，自动完成同步。其它改进还包括：更好的 IE6 支持，UI 的重新设计等等。我们会陆续协助客户完成软件升级。
用户手册也已经更新，参见： 《pySvnManager 用户手册》
关于如何升级到新版本的 pySvnManager，参照《pySvnManager 0.5 升级指引》
]]></description> <wfw:commentRss>http://blog.ossxp.com/2010/08/1817/feed/</wfw:commentRss> <slash:comments>2</slash:comments> </item> </channel> </rss>
<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Minified using disk
Page Caching using disk (user agent is rejected)
Database Caching 5/14 queries in 0.003 seconds using disk

Served from: blog.ossxp.com @ 2012-02-09 17:50:57 -->
