<?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; Hg</title> <atom:link href="http://blog.ossxp.com/category/scm/mercurial/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>CruiseControl HgVersionParser: no match of</title><link>http://blog.ossxp.com/2010/01/329/</link> <comments>http://blog.ossxp.com/2010/01/329/#comments</comments> <pubDate>Fri, 22 Jan 2010 05:45:02 +0000</pubDate> <dc:creator>崔 锐</dc:creator> <category><![CDATA[Hg]]></category> <category><![CDATA[持续集成]]></category> <category><![CDATA[CruiseControl]]></category><guid
isPermaLink="false">http://blog.ossxp.com/?p=329</guid> <description><![CDATA[
使用开源CruiseControl的时候，SCM工具是Mercurial(hg)。CC在收集hg库的修改集合信息的时候，解析hg的version总是出错。这个问题困扰我很长时间，昨天终于解决了。Error executing mercurial version command hg version项目构建的时候总是出现这个错误:
Error executing mercurial version command hg version具体错误信息如下:
net.sourceforge.cruisecontrol.CruiseControlException: java.text.ParseException: HgVersionParser: no match of 分布式软件配置管理工具 - 水银 (版本 1.4.1)
apper.run(ProjectWrapper.java:69)
at java.lang.Thread.run(Thread.java:619)错误原因
通过研究CruiseControl源代码Mercurial.java文件，终于找到了错误原因。其中Mercurial.java有这么一段代码去得到hg的version:
Pattern p = Pattern.compile("Mercurial Distributed SCM \\((.*)\\)");
Matcher m = p.matcher(versionLine);
if (!m.matches()) {
throw new ParseException("HgVersionParser: no match of " + versionLine, 0);
}在系统终端依次输入:
$ hg version
$ LANGUAGE=C hg versionhg version得到的返回结果是:
分布式软件配置管理工具 - 水银 <a
href="http://blog.ossxp.com/2010/01/329/" class="more-link">阅读全部内容 &#187;</a>]]></description> <wfw:commentRss>http://blog.ossxp.com/2010/01/329/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>版本库转换：hg-&gt;git-&gt;svn-&gt;git</title><link>http://blog.ossxp.com/2010/01/74/</link> <comments>http://blog.ossxp.com/2010/01/74/#comments</comments> <pubDate>Fri, 08 Jan 2010 07:53:36 +0000</pubDate> <dc:creator>蒋 鑫</dc:creator> <category><![CDATA[Git]]></category> <category><![CDATA[Hg]]></category> <category><![CDATA[Subversion]]></category> <category><![CDATA[未分类]]></category> <category><![CDATA[版本控制]]></category><guid
isPermaLink="false">http://blog.ossxp.com/?p=74</guid> <description><![CDATA[有一些在客户现场定制的软件，要把这些零散的工具软件合并到一个 Git库中—— utils 库。如：一个名为 ldap_import 的工具，是在客户现场完成的，使用 hg 做版本控制，包含16次提交。
目录结构为：
~/test/ldap_import-hg$ ls -aF
./  ../  .hg/  .hgignore  Makefile   sendmail.py*  test/  test.py*  to_ldif.py*需要导入到一个git库下，但是代码要放在一个目录 ldap_import 下，而不是版本库的根目录。整个转换过程涉及到使用 fast-export 完成 hg 到 git 的转换；使用git-svn 实现git库向svn的转换；使用 svnadmin dump/load, svndumpfilter 对版本库目录结构进行整理，最后使用git-svn将版本库转换为 git，在合并到统一的 utils Git库中。
补充说明：实际上Git本身可实现路径重构，而无需本文介绍的繁复的版本库转换。
例如：Git的子树合并可以将一个项目的根目录转换为子目录，使用 git filter-branch 可以将子目录提升为根目录等等。Hg版本库迁移到Git版本库
使用 fast-export 可以很容易的实现 Hg 版本库迁移为Git版本库。
fast-export 工具可以从 http://repo.or.cz/w/fast-export.git 获取到。
转换过程：
~/test/ldap_import-hg$ hg tip
修改集: <a
href="http://blog.ossxp.com/2010/01/74/" class="more-link">阅读全部内容 &#187;</a>]]></description> <wfw:commentRss>http://blog.ossxp.com/2010/01/74/feed/</wfw:commentRss> <slash:comments>3</slash:comments> </item> <item><title>群英汇版本控制系统的选择：subversion, hg, git</title><link>http://blog.ossxp.com/2010/01/67/</link> <comments>http://blog.ossxp.com/2010/01/67/#comments</comments> <pubDate>Thu, 07 Jan 2010 14:24:09 +0000</pubDate> <dc:creator>蒋 鑫</dc:creator> <category><![CDATA[Git]]></category> <category><![CDATA[Hg]]></category> <category><![CDATA[Subversion]]></category> <category><![CDATA[版本控制]]></category><guid
isPermaLink="false">http://blog.ossxp.com/?p=67</guid> <description><![CDATA[对于软件开发者或者往大了说，有知识管理或者数据管理需要的数码人 :computer: ，是否使用版本控制系统，肯定已经不再是一个问题。
但是选用什么版本控制系统呢？这真是一个问题。我会告诉我的大部分客户，您可以仍旧选择Subversion作为主要的版本控制工具，但是分布式版本控制系统，在特定场合诸如：异地协同开发、移动办公/开发、涉密项目的封闭式开发都有着各种不同的应用。
如果采用类似我们公司的开源开发模式或者是内部开源模式，那么 Git 可能是您的首选。
这篇博文以我们群英汇自己公司的版本库变迁历史，和网友共享&#8230;
Subversion
Subversion 是群英汇支持的最重要的产品，我们服务的大多数客户，都或多或少的选择了我们的版本控制服务。群英汇为客户提供Subversion版本控制服务，从培训、应用部署、系统整合到售后服务、技术支持。
我们公司的部分项目使用了Subversion版本控制系统，如：pySvnManager：托管在SourceForge上
FreeMind-MMX: 托管在SourceForge上
WordPress的CoSign-SSO插件：位于官方的Subversion库中我们公司内部的开发在2007年以前，也主要使用Subversion，但是之后，我们的代码库逐渐的向分布式版本控制系统迁移：先是Hg：Hg是水银的化学元素符号，全称为Mercurial。
后来是Git：Git 是 LinusTorvalds 继Linux后的又一个伟大发明，为全人类的另一个伟大贡献Hg/Mercurial
Hg走入我们的视线，是因为我们研究的项目都一个一个脱离Subversion阵营，转向Hg，使用Hg作为各自项目的版本控制工具。其中一个我们主要研究的项目是：MoinMoin维基。
使用Hg后，困扰我的问题迎刃而解，就是：我们的软件开发模式是基于成熟的开源软件进行定制。项目的原始代码库称为上游，我们自己的代码库称为下游；
使用Subersion，我们采用Subversion的Vendor分支（或称卖主分支）来管理我们的代码
一但上游软件软件出现新的版本，我们代码的迁移就成了最让人头痛的事情，可能好几天都不能搞定；Hg可以很好的解决这个问题，原因在于：Hg是分布式版本控制工具，整个代码库都在本地，浏览变更历史速度超快，实际上是本地访问，不再受制于网络。这样我们就可以更快的建立和上游版本库的同步，尽早尽快的解决代码合并问题，而不是要等到新版本发布；
Hg的最佳拍当MQ！简直就是为我们的开发模式所设计的。Subversoion的卖主分支和MQ相比就好像马车和火箭的对比。
Hg简单，并且使用习惯和Subversion非常相似，这也是为什么我们公司的版本控制系统在转向 Git 后，仍有部分项目在使用 Hg的原因群英汇的Hg开源代码库:http://bitbucket.org/ossxp_com/Git
有了Hg，为什么还要用git？和Subversion代码库同步的需要。虽然svn可以镜像远程代码库，但镜像库不能提交
Hg不支持分支，因此无法完全克隆一个Subversion代码库
Git有着完备的分支支持，可以将远程svn库镜像为一个本地的git库，而且可以提交甚至远程提交Git速度更快。如果你用过git和hg，你就会对我说的有所感觉：Hg提交/克隆/push/pull，我经常对自己无所事事 :ZZZ: 而感到恼怒，感觉就像傻子一样，完成了多少？1%还是99%？
Git速度超快不说，整个过程有着详尽的提示，真是体贴备至。 :rotfl:Git＋Topgit很好的支持上下游的协同开发Hg的MQ虽然很好，但是Git有Topgit，而且Git的rebase功能更成熟
MQ可能更适合单人开发，但是没有办法对补丁之间建立依赖关系
Topgit采用分支来管理补丁，而且可以在分支之间设置依赖，可以是代码更整洁群英汇的开放Git代码库：群英汇在github上的开源代码 (请使用 firefox浏览器)
我们自己网站上的gitweb演示：http://git.ossxp.com/
我们项目管理平台大多数项目也是和git版本整合：Redmine项目参考阅读：Why Git is Better than X
Version Control System Comparison
Version control systems comparison
CVS vs Starteam]]></description> <wfw:commentRss>http://blog.ossxp.com/2010/01/67/feed/</wfw:commentRss> <slash:comments>7</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/16 queries in 0.029 seconds using disk

Served from: blog.ossxp.com @ 2012-02-10 16:57:46 -->
