`

[SCM]源码管理 - mercurial

    博客分类:
  • SCM
 
阅读更多

http://www.cnblogs.com/itech/archive/2011/08/03/2126116.html

 

一 分布式的源码管理工具Mercurial

mercurial 作为3大主流的分布式源码管理工具,已经被广泛的使用。 例如 googlecode.com 和 codeplex.com 都支持mercurial作为源码管理工具。

主页:http://mercurial.selenic.com/

更多的帮助:http://hgbook.red-bean.com/ 和 TortoiseHg.chm

超级超级好的ppt:http://www.slideshare.net/tednaleid/distributed-version-control-dvcs-with-mercurial

 

windows下安装非常的方便,只需要双击msi(例如mercurial-1.9.1-x64.msi 或者 tortoisehg-2.1.2-hg-1.9.1-x64.msi)即可。 同时mercurial也支持Linux和MacOS。

命令行下载: http://mercurial.selenic.com/downloads/

shell集成的TortoiseHG的下载:http://mercurial.selenic.com/downloads/

 

二 命令行入门

本 文使用的测试的 mercurial server为https://code.google.com/p/mercurial001, 如果读者需要测试的话,可以留下你的googlecode的username,我可以加你为committer,你可以测试所有的功能。

 

1)从远程的repository克隆project到本地,然后修改和提交到远程的repository

 

解释如下:
# 将mercurial001 repository 克隆到本地。
$ hg clone https://code.google.com/p/mercurial001
# 切换到mercurial目录
$ cd mercurial001
#在当前目录mercurial001下增加新的文件 t2.txt 。
# 标记t2.txt为add状态
$ hg add
# 在commit和push前要配置自己的user信息,如果没有配置user,commit时默认使用本机的登录用户,此时配置文件中default server的值默认为刚才clone的源
https://code.google.com/p/mercurial001,如果没有配置default的server,则对push命令需要指定server的值。
# 将刚才的修改提交到本地的repository。
$ hg commit  -m 'add t2.txt'  [ -u AAA ]
# 将本地的repository 跟新到远程的mercurial001 repository。
$ hg push [ http://selenic.com/repo/hello ]
# 如果是push到googlecode,需要使用googlecode的用户名和密码。
 

2)配置:.hg/hgrc配置文件

 

 解释如下:

[paths]

# default为要push的目标地址,同时也是pull的源地址。
default =https://code.google.com/p/mercurial001
[ui]
# username为本地commit的用户名。可以不同于提交到googlecode的用户名。
username = AAA <AAA@gmail.com>

 

3)其他常用的功能

解释如下:

# 将远程的mercurial repository的跟新同步到本地的repository。
$ hg pull
# 将本地的repository的跟新同步到working copy。
$ hg update
# 将文件t4.txt标记为删除状态 。
$ hg remove t4.txt
# 查看当前的working copy的修改状态
$ hg status
# 将修改应用到本地的repository
$ hg commit -m "remove t4.txt"
# 查看本地的repository的修改历史
$ hg log
# 将本地的repository 跟新到远程的mercurial001 repository。
$ hg push [ http://selenic.com/repo/hello ]
# 如果是push到googlecode,需要使用googlecode的用户名和密码。

4)创建新的repository和project,然后提交修改
# 创建新的repository。
$ hg init (project-directory)
# 进入repository目录。
$ cd (project-directory)
# 增加新的文件。
$ (add some files)
# 将新加的文件标记为新加状态。
$ hg add
# 将前面的改动应用到repository。
$ hg commit -m 'Initial commit'

5)使repository可以通过http被其他的用户访问
# 为当前的repository启动http的访问方式。
$ hg serve
# 通过http来访问repository。
$ hg clone http://ip:8000/

 

三 其他的比较好的分布式源码管理工具还有:git和bazaar,但是在windows上mecurial安装最方便。

 

完!

感谢,Thanks!

分享到:
评论
2 楼 laiyangdeli 2012-02-06  
greatghoul 写道
请问,同为dscm, mecurial和git相比,有什么优势呢?

Refer to:
http://www.slideshare.net/tednaleid/distributed-version-control-dvcs-with-mercurial
1 楼 greatghoul 2012-02-06  
请问,同为dscm, mecurial和git相比,有什么优势呢?

相关推荐

    Python库 | setuptools_scm-3.0.5-py2.py3-none-any.whl

    `setuptools_scm`是Python开发中的一个关键库,它主要用于自动管理Python项目的版本号。这个库能够根据项目源代码的版本控制系统(如Git、Mercurial或SVN)来推断当前的版本信息,使得在构建和发布Python包时无需...

    SCM Manager 简体中文版

    SCM Manager 是一款同时支持Git、Subversion、Mercurial的源代码管理服务器,基于Java构建。 中文版由木鱼制作,除了进行全面的中文化以外,还提供了配置脚本、预置了插件并进行了插件的中文化,以及安装说明。 SCM...

    PyPI 官网下载 | setuptools_scm-1.14.0.tar.gz

    《PyPI官网下载 | setuptools_scm-1.14.0.tar.gz——Python包管理与版本控制解析》 在Python的开发环境中,管理和部署代码库是至关重要的环节,PyPI(Python Package Index)作为官方的Python软件包仓库,为开发者...

    Python库 | setuptools-scm-1.1.0.tar.gz

    1. **自动版本管理**:`setuptools-scm`的核心功能是根据版本控制系统(如Git、Mercurial、Subversion等)的提交信息来自动确定项目的版本号。这使得每次提交都会更新版本,避免了手动维护`setup.py`文件的繁琐过程...

    Python库 | setuptools_scm-1.5.4.tar.gz

    7. **与其他工具的配合**:`setuptools_scm`与`setuptools`和`wheel`等构建工具紧密集成,可以方便地创建源码包和轮子包。同时,它也支持`flit`和`poetry`等现代的打包工具。 8. **PyPI发布**:在发布到PyPI时,`...

    一种分布式源码管理系统方案研究.pdf

    它也是软件配置管理(SCM)的重要组成部分,SCM关注的是整个软件生命周期中的变更管理,保证软件变更能够被正确实施并且被团队成员有效沟通。 版本控制系统可以分为集中式版本控制系统和分布式版本控制系统,本文所...

    java版ss源码-gradle-snapshot-plugin:一个Gradle插件,用于从源代码控制管理(SCM)工具生成构建元数据

    java版s源码Gradle 快照插件 从源代码控制管理 (SCM) 工具生成构建元数据的插件。 快照插件被认为是功能完整的。 它依赖于Gradle 1.6或更高版本的插件 API,并与 Gradle 2.0兼容。 请报告错误并在页面上建议新功能。...

    redmine-4.1.1.zip

    - **集成SCM**:与Git、SVN、Mercurial等源代码管理工具集成,便于代码管理和版本控制。 - **多语言支持**:支持多种语言,满足国际化需求。 2. **Redmine 4.1.1的改进与新功能** - **性能优化**:通常,每个新...

    Hudson常用插件说明

    14. **Mercurial Plugin**:集成Mercurial版本控制系统。 15. **Perforce Plugin**:集成Perforce至Hudson。 16. **Synergy Plugin**:集成CM/Synergy版本管理系统。 17. **Dimensions Plugin**:集成Dimensions ...

    ronin:Ronin是一个为信息安全和数据探索任务而设计的Ruby平台。 Ronin允许在许多常见的源代码管理(SCM)系统上快速开发和分发代码-System source code development

    Ronin的一个显著特点是与多种源代码管理系统(如Git、SVN、Mercurial等)的无缝集成。SCM系统在软件开发流程中扮演着核心角色,它们帮助团队协作、跟踪代码变更、管理版本,并且便于回滚错误。通过Ronin,开发者可以...

    git-plugin:Jenkins Git插件

    - **其他SCM插件**:Jenkins还支持其他SCM,如SVN、Mercurial等,可以根据项目需求灵活选择。 7. **最佳实践** - **定期更新插件**:保持Git-plugin版本最新,以获取最新的功能和安全修复。 - **测试策略**:...

    伊甸园:EdenSCM是一个跨平台的,高度可扩展的源代码控制管理系统

    EdenSCM是跨平台的,高度可扩展的源代码管理管理系统。 它旨在为用户提供用户友好且功能强大的界面,以及极高的可伸缩性,以处理包含数百万个文件和数百万个提交的存储库。 EdenSCM由三个主要组件组成: eden CLI...

    jenkins 开发导读

    - **SCM 插件**:集成不同版本控制系统,如 Subversion、Git、Mercurial 等。 - **构建工具插件**:支持 Maven、Gradle、Ant 等构建工具的配置和执行。 - **测试框架插件**:与 JUnit、TestNG 等测试框架集成,展示...

    hudson配置

    1. **广泛支持的SCMs**:Hudson与Subversion、CVS等源码控制管理工具紧密集成,同时通过插件支持Accurev、Git、Mercurial等多种SCM工具。 2. **易用性**:Hudson提供了直观的控制台界面,方便项目配置和管理。 3. **...

    jenkinstrigger:行家

    1. 在Jenkins项目配置中,选择“源码管理”并配置Git仓库URL。 2. 在“构建触发器”部分勾选“Poll SCM”,然后输入cron表达式,例如`H/5 * * * *`,表示每5分钟检查一次仓库。 3. 在Git仓库的Webhook设置中,添加...

Global site tag (gtag.js) - Google Analytics