在Google Code上用 Mercurial 取代 Subversion 管理你的项目
来源:互联网 发布:java点餐系统源 编辑:程序博客网 时间:2024/05/29 14:39
原帖: http://leeiio.me/googlecode-converting-svn-to-hg/ 之前,我一直都是用的SVN作为我日常的版本控制工具,诸如代码啊文档啊之类的东西。至于CVS这么复古的版本控制工具更是没有机会去尝试。说到SVN控制版本的话,作为托管服务商比较好的就有google code,本人也一直在使用。最近,由于一些项目的原因,了解到了另外一个版本控制工具Hg,当然Hg不是它的原名,原名叫Mercurial,都是水银的意思,所以通常称呼为Hg。 接下来回到本文的正题。本文的起因是Google Code在早前除了支持SVN托管代码外,更支持了分布式版本控制Mercurial(Hg)来管理你托管在Google Code上的项目。至于Google为什么在这么多种的分布式版本控制工具中选择了Mercurial而不是Git,这里有一篇文章,推荐阅读一下《Git 与 Mercurial 的分析》,原文《Analysis of Git and Mercurial》。 下面,就教大家怎么让Google Code用Mercurial替代Subversion来管理你的项目。原文 http://code.google.com/p/support/wiki/ConvertingSvnToHg。 在你切换你的项目使用Mercurial管理后,你的旧Subversion项目仍然可以访问,所以在你切换之前你不需要备份你的代码库。你的Subversion版本库将会保持访问: https://projectname.googlecode.com/svn/ 第一种方式:简要截取 接着转换你的wiki: 第二种方式:完整历史记录转换 如果失败,或返回的版本低于5,则肯定是不对的。如果你没有二进制软件包,你可以从Subversion自己的源代码树中建立: 如果你在Ubuntu的Hardy版本,你可以在hardy-backports里找到1.5版的python-subversion:http://packages.ubuntu.com/hardy-backports/python-subversion 开始转换 一旦完成转换,你就可以push你最新的历史记录到你的Google Code项目中(前提是你有了一个空的Mercurial版本库): 至此,大功告成。
与集中式版本控制工具SVN不同的是,Hg是一种分布式版本控制工具。除了Hg,还有大名鼎鼎的Git也是分布式版本控制工具。想要更具体的了解版本控制工具的,推荐阅读胡凯《为什么我们要放弃Subversion》,
风云《分 布式的版本控制工具》,猛禽《分 布式版本控制(一)》 《分 布式版本控制(二) 》,Sparkle《我 与Mercurial 系列等几篇文章》等。只是想了解Mercurial(Hg)的话,Mercurial官方wiki已经有很详尽的资料和帮助文档了。在Google Code里设置由Mercurial来管理项目
如何转换Google Code里Subversion的历史记录到Mercurial中
如果你不在乎你原来项目的历史记录,那么你可以简单地从Subversion里的主干代码或者wiki中提取最新的代码然后放到你的Mercurial中。假设你googlecode里的 Mercurial代码库是空的,那么可以这样操作: $ hg clone https://projectname.googlecode.com/hg hg-client $ cd hg-client $ svn export --force http://projectname.googlecode.com/svn/trunk . $ hg add . $ hg commit -m "Initial import of source." $ hg push
$ hg clone https://wiki.projectname.googlecode.com/hg hg-client-wiki $ cd hg-client-wiki $ svn export --force http://projectname.googlecode.com/svn/wiki . $ hg add . $ hg commit -m "Initial import of wiki." $ hg push
如果你要迁移你整个的历史记录,整个过程可能要你更多的参与了。你将会需要先安装一些特殊的工具程序。
安装工具[extensions]hgext.convert=
$ python -c "import svn.core; print svn.core.SVN_VER_MINOR" 5
$ svn checkout http://svn.collab.net/repos/svn/tags/1.6.0 svn$ cd svn$ ./autogen.sh && ./configure$ make$ sudo make install$ make swig-py # make sure you have swig 1.3 installed already$ make check-swig-py$ sudo make install-swig-py
这可能还需要安装backports里的libsvn1, subversion, mercurial-common, 和mercurial 包。
现在我们开始转换– branches(分支), tags(标签)以及其他全部:$ mkdir hg-client$ hg convert http://projectname.googlecode.com/svn hg-client
$ cd hg-client$ hg push https://projectname.googlecode.com/hg
- 在Google Code上用 Mercurial 取代 Subversion 管理你的项目
- 使用google code 和 subversion管理项目
- 在Google code上创建项目
- 用Google-Code管理你的代码财富
- 用Google-Code管理你的代码财富 .
- [转]Linux下利用Google Code与Subversion协同管理项目
- google code上建立项目的方法
- google code上建立项目的方法
- GIT在Google Code上的使用
- Mercurial项目管理实践
- 在google code 上使用git 管理开源软件
- 如何在Google Code上创建开源项目
- 在Google Code上发布了项目VBox-OSE
- 如何在Google Code上创建开源项目
- 如何在Google Code上创建开源项目
- 在Google Code上发布了项目VBox-Ex
- 如何在Google Code上创建开源项目
- 利用 Google Code建立自己的 SVN项目同步管理
- 2011国际顶尖PLM厂商及分析
- extjs_table
- undefined reference to `__gxx_personality_v0'
- usb驱动程序分析
- DataSet中生成自己的查询方法入门3
- 在Google Code上用 Mercurial 取代 Subversion 管理你的项目
- POJ1611 并查集
- 用DataSet强类型插入一条纪录入门4
- 上海
- poj3132 把背包放满的方法数~
- 在DataSet中实现参数查询的方法入门5
- ZOJ 3309
- 英语语法检查工具C++
- 磁盘管理控制台不是最新状态 win 7