之前,我一直都是用的SVN作为我日常的版本控制工具,诸如代码啊文档啊之类的东西。至于CVS
这么复古的版本控制工具更是没有机会去尝试。说到SVN控制版本的话,作为托管服务商比较好的就有google code,本人也一直在使用。最近,由于一些项目的原因,了解到了另外一个版本控制工具Hg,当然Hg不是它的原名,原名叫Mercurial
,都是水银的意思,所以通常称呼为Hg。
与集中式版本控制工具SVN不同的是,Hg是一种分布式版本控制工具。除了Hg,还有大名鼎鼎的Git
也是分布式版本控制工具。想要更具体的了解版本控制工具的,推荐阅读胡凯《为什么我们要放弃Subversion
》,
风云《分 布式的版本控制工具
》,猛禽《分 布式版本控制(一)
》 《分 布式版本控制(二)
》,Sparkle《我 与Mercurial 系列等几篇文章
》等。只是想了解Mercurial(Hg)的话,Mercurial官方wiki
已经有很详尽的资料和帮助文档了。
接下来回到本文的正题。本文的起因是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。
在Google Code里设置由Mercurial来管理项目
- 访问你已经存在的google code项目页面,选择 “Administer” 选项页,然后选择下级分类选项页 “Source”。
- 改变第一项Repository type为Mercurial。
- 参照下文介绍的“如何转换Google Code里Subversion的历史记录到Mercurial中”,导入你的代码到 Hg 代码库中
- 以同样的导入代码的方式,导入你的wiki到Hg wiki库中。确认你使用的subversion代码库的wiki路径(例如
http://projectname.googlecode.com/svn/wiki) 以及 Hg
代码库的wiki路径(http://wiki.projectname.googlecode.com/hg/)
在你切换你的项目使用Mercurial管理后,你的旧Subversion项目仍然可以访问,所以在你切换之前你不需要备份你的代码库。你的Subversion版本库将会保持访问: https://projectname.googlecode.com/svn/
如何转换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
接着转换你的wiki:
$ 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
第二种方式:完整历史记录转换
如果你要迁移你整个的历史记录,整个过程可能要你更多的参与了。你将会需要先安装一些特殊的工具程序。
安装工具
- ‘hg convert’扩展模块。最新版本的Mercurial已经包含这个模块,请确保你的hg版本为1.1 或者 1.2 或者更高版本。 (可用”hg –version”命令查看) 然后在你的.hgrc里面添加如下代码启用该扩展模块:
[
extensions]
hgext.convert
=
- Subversion的swig-python绑定。请确保您有最近的Subversion安装(1.5或1.6)。绝大部分的
Subversion衍生版本都有与python的绑定,或者提供他们额外的二进制包。你可以运行如下代码检查你的svn –
python的绑定是否正常:
$ python -c
"import svn.core; print svn.core.SVN_VER_MINOR"
5
如果失败,或返回的版本低于5,则肯定是不对的。如果你没有二进制软件包,你可以从Subversion自己的源代码树中建立:
$ 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
如果你在Ubuntu的Hardy版本,你可以在hardy-backports里找到1.5版的python-subversion: http://packages.ubuntu.com/hardy-backports/python-subversion
这可能还需要安装backports里的libsvn1, subversion, mercurial-common, 和mercurial 包。
开始转换
现在我们开始转换– branches(分支), tags(标签)以及其他全部:
$ mkdir
hg-client
$ hg convert http://
projectname.googlecode.com/
svn
hg-client
一旦完成转换,你就可以push你最新的历史记录到你的Google Code项目中(前提是你有了一个空的Mercurial版本库):
$ cd
hg-client
$ hg push https://
projectname.googlecode.com/
hg
至此,大功告成。
原址:http://leeiio.me/googlecode-converting-svn-to-hg/
分享到:
相关推荐
共享和管理Git,Mercurial和Subversion存储库的最简单方法。 非常容易安装 无需修改配置文件,SCM-Manager完全可以从其Web接口进行配置 无需Apache,无需安装数据库 中央用户,组和权限管理 对Git,Mercurial和...
在Windows使用apache搭建Mercurial版本控制服务。 Mercurial是分布式的版本管理系统,这个文档将教你怎样搭建Mercurial服务器,并试用apache的用户管理来配置Mercurial服务器的用户和权限。
Mercurial_使用教程
sourceTree1.4.0 可能需要使用的插件 Mercurial
Mercurial 2.1.1 Inno Setup installer - x86 Windows Mercurial 是一种轻量级分布式版本控制系统,采用Python 语言实现,易于学习和使用,扩展性强。安装程序不需要管理员权限。
Mercurial(Hg)使用参考
mercurial安装包1.8.4 分布式版本管理工具
Mercurial是一个跨平台的分布式版本控制软件,主要由Python语言实现,但也包含一个用C语言实现的二进制比较工具。Mercurial一开始的主要运行平台是Linux,现在Mercurial已经被移植到Windows、Mac OS X和大多数的类...
目录,然后在里面创建【.link】扩展名的文件,在里面写上类似于【path=F:\\IDE\\eclipsePlugin\\MercurialEclipse\MercurialEclipse1.5】这样的配置信息,不就可以统一管理我们自己的插件了吗。而【MercurialEclipse...
黑盒子 将机密安全存储在VCS存储库中(即Git,Mercurial,Subversion或Perforce)。 这些命令使您可以轻松地通过Gnu Privacy Guard(GPG)对存储库中的特定文件进行加密,以使它们在存储库中“静态加密”。 但是,...
Mercurial的简单入门
SublimeHg 可以让你在 Sublime Text 编辑器中使用 Mercurial 版本控制系统。 标签:SublimeHg
Mercurial 分布式版本控制系统 部署 server 服务
Mercurial 分布式版本管理工具 版本控制的发展趋势 在过去的四十年中,随着人们越来越熟悉他们的工具的能力和限制,开发和使用版本控 制工具出现了明确的趋势。 第一代软件开始于在个人计算机,人们用这些软件管理...
该插件是解决Mercurial:Hg检出的时候:The system cannot find the path specified 报错的问题
打造安全的分布式版本管理系统,Mercurial+IIS+Active Directory+SSL
Mercurial 是一种轻量级分布式版本控制系统,采用 Python 语言实现,易于学习和使用,扩展性强。其是基于 GNU General Public License (GPL) 授权的开源项目。
安眠 QuieSleep 应用程序(最初是使用 Mercurial 和 Google Code 开发的,但从现在开始,官方 repo 是这个)
mercurial版本控制工具手册
从源代码管理侧栏中添加文件并提交(即git正常显示的位置)。 所有基础知识:提交,添加,忘记,更新,推送和拉取。 在文本编辑器中内联查看更改。 基本文件历史记录和差异的交互式日志。 分支,合并头,与分支...