python版本管理hg mercurial
1.拉代码 hg pull
2.提交代码到本地 hg commit -m save
3.提交代码到远程分之 hg push
4.撤销本地全部没有提交的代码 hg update -C
5.查看当前分支 hg branch
6.打标签 hg tag test.version001
7.合并同一分支的远程代码到本地 hg up
8.将default分支上的代码合并到本地分支
切换到开发分支 hg up dev
在dev分支merge default分支代码 hg merge default
hg st
hg commit -m save
hg push
8.将dev分支代码提交到default分支
hg pull
hg up default
hg st
hg branch
hg merge dev
hg commit -m mergedev
hg push
9.hg新增和删除提交
hg add
hg remove -A
hg commit -m save
hg push
9.处理冲突
hg reset —mark save
hg resolve —mark
10.hg建立新分支
hg branch branch-1
hg ci -m’branch-1′ -u xwuxin
hg push –new-branch
#branch-1为分支的名称,建立后要提交,而后用hg branches才能看到全部的分支
11.查看全部头 hg heads
12.查看置顶分支的头 hg heads dev
若是有多的头,须要进行merge 合并。
php
如下是转自网上,上面属于我的总结。
hg Mercurial安装:html
windows下的图形界面工具:http://tortoisehg.bitbucket.org/
命令行:http://mercurial.selenic.com/
Ubuntu安装方式:sudo apt-get mercurialpython
Mercurial配置git
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 = 123456expressphp.prefix = https://bitbucket.org/xwuxin/xwuxinphp
php.username = xwuxin
php.password = 123456
#设置使用 hg latest 命令来查看最近的 5 条 log
[alias]
latest = log –limit 5vim#设置扩展
[extensions]
#设置graph后,能够用hg glog来查看分支结构
hgext.graphlog =
#设置书签扩展
hgext.bookmarks =windows
建立分支api
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中的更新应用到本地工做区Whg 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
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:
hg flow:
yinwm老大参考gitflow写的一个插件,用于规范hg的工做使用流程,强烈推荐!
https://bitbucket.org/yinwm/hgflow/wiki/Home