文档章节

hg(Mercurial)使用参考

yu82694
 yu82694
发布于 2017/04/07 13:34
字数 1828
阅读 60
收藏 0
点赞 0
评论 0

hg(Mercurial)使用参考

2011-10-14

使用hg(mercurial)有好几个月了,个人感觉这款分布式的版本控制系统非常不错,易学,易用;你可以从做在你旁边的同事拉取完整的代码; 对网络的依赖性更低,有本地沙盒,真正实现了离线开发; 轻量;安全,不会因为一两个节点的损坏而影响整个系统。这里做下使用笔记,脑子不好使,容易忘。

安装:

windows下的图形界面工具:http://tortoisehg.bitbucket.org/
命令行:http://mercurial.selenic.com/
Ubuntu安装方式:sudo apt-get mercurial

Mercurial配置

Linux/Mac: 在主目录创建一个.hgrc做为配置文件
windows: xp中可以在C:\Documents and Settings下找到mercurial.ini,win7中没有的话就在C:\Users\[user]\下面创建一个
在文件中配置用户名,写入:
[ui]
username = xwuxin
#配置默认路径:
[paths]
default = http://www.xxxx.com/hg
default-push = http://www.xxx.com/hg
#配置授权,避免每次都输入用户名
[auth]
as3.prefix = https://bitbucket.org/xwuxin/xwuxinlibforas3
as3.username = xwuxin
as3.password = 123456

php.prefix = https://bitbucket.org/xwuxin/xwuxinphp
php.username = xwuxin
php.password = 123456
#设置使用 hg latest 命令来查看最近的 5 条 log
[alias]
latest = log –limit 5

#设置扩展
[extensions]
#设置graph后,可以用hg glog来查看分支结构
hgext.graphlog =
#设置书签扩展
hgext.bookmarks =

创建分支

hg branch branch-1
hg ci -m’branch-1′ -u xwuxin
hg push –new-branch
#branch-1为分支的名称,创建后要提交,然后用hg branches才能看到所有的分支

克隆仓库

hg clone http://hg.xxxx.com/repo/enjoy enjoy

克隆完代码仓库之后,形成了三个区域。 一个是远程的代码仓库R, 一个是本地的代码仓库L, 另外一个是本地的工作区W, 对文件做修改之后,实际上是改动工作区中的文件, 执行提交命令之后进入本地的代码仓库,然后可以使用推送命令将本地代码仓库中的代码推送到远程的代码仓库。

提交代码

hg commit 后面可以指定具体要提交的文件
比如:hg commit -m’修复编码的bug’
如果是新加入的文件 先使用 hg add 命令加入 该命令实际上是提交到本地的仓库。

推送代码

hg push 将本地代码库L中的修改推送到远程代码库R中

hg outgoing 指示查看要推送的代码,但不执行推送操作

拉取代码

hg pull 将远程的代码库R中的更新拉取到本地的代码库L
把别的仓库中的 ChangeSet Pull 到本仓库
$ hg pull ../my-hello-new-output

在 Pull 后, 缺省情况下 Mercurial 不更新工作目录。这意味着虽然 Repository 现在有变更集, 但在工作目录中的文件仍然是Pull 之前老的内容。我们可以用以下Mercurial的提醒来 Update 这个文件 (也包括所有其它 Pull 时改变的文件)。
$ hg update
要看到修改还需要使用hg update 将本地代码库L中的更新应用到本地工作区W

hg incoming 只是查看要推送的修改,但不执行拉取操作。

合并代码

hg merge 合并代码, 后面指定合并哪一个分支。 使用hg heads 查看有哪些分支。

恢复代码

hg revert [文件名]
hg revert –all 恢复所有代码
这里指的恢复代码是指恢复你未提交到本地仓库前当前的最新代码。

查看状态hg status(短写:hg st)

hg st
M hello.c
用于查看代码变更
以 M 开头的行意思就是hello.c文件修改过

export 命令(用于导出项目的一个tarball,方便发布。)

必需提供一个 Tag, 版本号或 变更集号 来告诉 Mercurial 有什么进入了 导出(Export)
$ hg export tip

新建仓库

直接在一个目录中使用 hg init 即可。

启用hg自带的server
sudo hg serve -p 8002
#它会生成一个访问地址。

查看文件差别

先用hg log [文件名]查看版本
hg diff -r 版本号1:版本号2
用vim同样可以查看两个文件的区别
vim -d [文件名1] [文件名2]

恢复文件到特定的版本

先用hg log [文件名]查看版本
hg cat api.php -r 2009 > t.php
t.php为新生成的文件,用原文件名会覆盖原文件。

hgignore忽略设置

在clone下来的文件夹目录下会发现一个文件.hgignore(注意是一个隐藏文件,需要打开显示隐藏文件的选项)
# use glob syntax.
syntax: glob
#设置忽略后缀为bak,orig,swp的文件
*.bak
*.orig
*.swp
#设置忽略后缀为Thumbs.db的文件
Thumbs.db

其中第一行指定语法,这里是 glob。共有两个选择:
regexp: Regular expression, Python/Perl syntax.
glob: Shell-style glob

hg log

1. 查看指定版本的日志,比如查看changeset为3的日志
hg log -r 3
2. 查看多个版本的日志,比如查看1和4的
hg log -r 1 -r 4
3.使用范围标记显示多个版本日志,比如显示2,3,4三个版本的日志
hg log -r 2:4
4.显示摘要,比如显示changeset为3的
hg log -v -r 3
5.显示变更的描述和内容,增加-p选项。比如
hg log -v -p -r 2
可以使用短选项:
hg log -vpr 2
6.查看最近的几次提交,比如这里查看最近2次的提交
hg log -l 2
7.显示指定用户的提交
hg log -u [用户名]
8.

hg heads

1. 显示拓扑首
hg heads -t

hg tip

显示版本库中最新的版本的信息,-v查看详细,-p输出补丁
hg tip -vp

从其它版本库取得变更:hg incoming ../my-hello //它会告诉我们hg pull将会把哪些变更拖进版本库,但不会真正的执行

显示工作目录的版本:hg parents

重新解决冲突:hg resolve “这里指定要解决冲突的文件”

hg 提供了一个非常高效的命令用于添加所有新增文件以及剔除所有被删除了的文件,只需要在项目目录下或任意子目录下运行如下命令:

hg addremove

查看命令的使用方法

hg help [命令名称]
比如要查看log命令的使用方法:
hg help log

修改merge编辑器,本人用的vim,支持三路合并,可以在 ~/.hgrc 中加以更改,比如:

[ui]
username =
editor = nano
merge = XXX
这样就配置了使用 nano 作为默认的编辑器,XXX 作为默认的 merge 工具。

hg branch

http://www.codingboy.com/zlog/post/21.html
http://mercurial.selenic.com/wiki/Branch

hg bookmark

http://www.xwuxin.com/?p=1318

Mercurial权威指南pdf版:  http://dl.dbank.com/c0i1vkx8r0
官方wiki:http://mercurial.selenic.com/wiki/
Mercurial hgrc mercurial.ini配置方法:http://www.selenic.com/mercurial/hgrc.5.html
Redmine集成Mercurial:http://www.cnblogs.com/jinyong/archive/2009/03/22/1419129.html
让Mercurial和TortoiseHg支持中文文件名/UTF-8:http://www.cnblogs.com/tinyfish/archive/2010/06/08/1754364.html
从SVN到Mercurial的迁移(英):http://www.oschina.net/question/6981_20033
git 的企业级授权工具 gitolite:

http://weiye.info/blog/2011/01/git-auth-gitolite/
http://www.ossxp.com/doc/git/gitolite.html

some article for mercurial:

http://www.denisdeng.com/?cat=184

hg flow:

yinwm老大参考gitflow写的一个插件,用于规范hg的工作使用流程,强烈推荐!
https://bitbucket.org/yinwm/hgflow/wiki/Home

Author:admin | Categories:hg(Mercurial) | Tags: hgMercurialRedminewin7xp使用保存密码参考权威指南配置

本文转载自:http://www.xwuxin.com/?p=1179

共有 人打赏支持
yu82694
粉丝 1
博文 47
码字总数 6820
作品 0
南宁
Hg Mercurial版本管理介绍

python版本管理hg mercurial 1.拉代码 hg pull 2.提交代码到本地 hg commit -m save 3.提交代码到远程分之 hg push 4.撤销本地所有没有提交的代码 hg update -C 5.查看当前分支 hg branch 6....

指尖Coding
2016/01/28
37
0
觖决问题: TortoiseHg waiting for lock on working directory of X:\woks\2017\proj\FPGAFW@proj held by ''

问题 % hg add -- pll3.inc pll3.vhd pll3_inst.vhd pllClock.vhd waiting for lock on working directory of X:woks2017projFPGAFW@proj held by '' 解决方法 关闭TortoiseHg后,删除这个文......

SamXIAO
06/01
0
0
Mercurial 3.7 发布,分布式版本控制系统

Mercurial 3.7 发布,更新如下: 特性 Generaldelta:the original Mercurial compression format had an inefficient way ofstoring history in very branchy repositories. Generaldelta a......

oschina
2016/02/03
1K
2
mercurial largefiles

原文地址:https://mercurial.selenic.com/wiki/LargefilesExtensionhttps://mercurial.selenic.com/wiki/LargefilesExtension Largefiles extension This is considered a feature of last ......

Hardlighting
2015/06/07
0
0
分布式版本控制工具 Mercurial 使用教程

本教程是介绍如何使用 Mercurial。我们不假定你有使用 源代码控制管理(SCM) 软件的背景。 本教程有法文 FrenchTutorial,西班牙文 SpanishTutorial,日文 JapaneseTutorial,和中文 ChineseT...

云栖希望。
2017/12/06
0
0
Linux下Mercurial (hg)配置说明

今天从源代码安装了mercurial,本来可以用命令很简单的安装: sudo apt-get install mercurial,但是安装以后发现版本比较老,所以决定从源代码安装。 官方网站:http://mercurial.selenic....

范堡
2010/03/22
12.3K
2
TortoiseHg中文文件名乱码解决

基础知识 Mercurial(HG)是一个分布式的版本控制系统(VCS)之一。 和GIT类似。 HG内建Windows资源管理器前端TortoiseHg是 http://tortoisehg.bitbucket.org/ 可供下载。 TortoiseHg 0.8或更...

红薯
2010/05/15
3K
0
构建离线Go编程指南---gotour

Google为了更好地推广Go语言,在自己的官网和Appspot上分别搭建了基于浏览器的交互式Go编程指南-gotour,相关网站: gotour—— English Version gotour——中文版本 这个教程非常简单易学,...

acmfly
2012/12/20
0
2
apache+mercurial+LDAP环境搭建

1 软件安装 (1)mercurial安装 # sudo apt-get install mercurial meld (2)apache安装 # sudo apt-get install apache2 libapache2-mod-wsgi (3)openldap安装 # sudo apt-get install s......

被使用的文件
2015/12/14
38
0
http web serve for mercurial

Serving over HTTP using CGI The simplest way to host one or more repositories in a permanent way is to use a web server and Mercurial's CGI support. 5 comments 最简单的方法的,长......

Hardlighting
2015/06/24
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

java集合元素的默认大小

当底层实现涉及到扩容时,容器或重新分配一段更大的连续内存(如果是离散分配则不需要重新分配,离散分配都是插入新元素时动态分配内存),要将容器原来的数据全部复制到新的内存上,这无疑使...

竹叶青出于蓝
4分钟前
1
0
Java快速开发平台,JEECG 3.7.7闪电版本发布,增加多套主流UI代码生成器模板

JEECG 3.7.7 闪电版本发布,提供5套主流UI代码生成器模板 导读 ⊙平台性能优化,速度闪电般提升 ⊙提供5套新的主流UI代码生成器模板(Bootstrap表单+BootstrapTable列表\ ElementUI列表表单)...

Jeecg
7分钟前
0
0
export 和 module.export 的区别

在浏览器端 js 里面,为了解决各模块变量冲突等问题,往往借助于 js 的闭包把左右模块相关的代码都包装在一个匿名函数里。而 Nodejs 编写模块相当的自由,开发者只需要关注 require,exports,...

孟飞阳
9分钟前
0
0
技术教育的兴起

技术教育的兴起 作者: 阮一峰 1、 有一年,我在台湾环岛旅行。 花莲的海边,我遇到一对台湾青年夫妻,带着女儿在海滩上玩。我们聊了起来。 当时,我还在高校当老师。他们问我,是否觉得台湾...

吕伯文
10分钟前
0
0
Linux服务器下的HTTP抓包分析

说到抓包分析,最简单的办法莫过于在客户端直接安装一个Wireshark或者Fiddler了,但是有时候由于客户端开发人员(可能是第三方)知识欠缺或者其它一些原因,无法顺利的在客户端进行抓包分析,...

mylxsw
14分钟前
0
0
mybatis3-javaapi

sqlSessionFactoryBuilder->sqlSessionFactory->sqlSession<-rowbound<-resultHandler myBatis uses a Java enumeration wrapper for transaction isolation levels, called TransactionIsol......

writeademo
17分钟前
0
0
Java NIO:浅析I/O模型

也许很多朋友在学习NIO的时候都会感觉有点吃力,对里面的很多概念都感觉不是那么明朗。在进入Java NIO编程之前,我们今天先来讨论一些比较基础的知识:I/O模型。下面本文先从同步和异步的概念...

yzbty23
18分钟前
0
0
了解iOS消息推送一文就够:史上最全iOS Push技术详解

本文作者:陈裕发, 腾讯系统测试工程师,由腾讯WeTest整理发表。 1、引言 开发iOS系统中的Push推送,通常有以下3种情况: 1)在线Push:比如QQ、微信等IM界面处于前台时,聊天消息和指令都会...

JackJiang-
19分钟前
0
0
Mysql汉子转拼音

update t_app_city SET CITY_NAME_BEGIN = ELT(INTERVAL(CONV(HEX(LEFT(CONVERT(CITY_NAME USING gbk),1)),16,10), 0xB0A1,0xB0C5,0xB2C1,0xB4EE,0xB6EA,0xB7A2,0xB8C1,0xB9FE,0xBBF7, 0xBFA......

尘叙缘
21分钟前
0
0
大数据构建智慧城市“新引擎”,加速推进新旧动能转换

——“大数据与智慧城市”技术交流分享会——济南站召开 7月13日,“大数据携手智慧城市,助力山东新旧动能转换”技术交流分享会——济南站在山东信息通信技术研究院会议室成功举办,此次会议...

左手的倒影
23分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部