突击Mercurial SCM(HG)13---回退到指定版本

团队开发中,版本回退是老生常谈了。通常版本回退的原因是代码中出现重大错误了,要回退到上一个可运行的版本。

这是一个很危险的动作,而我们使用revert命令来做这个危险动作。

$ hg revert --help
hg revert [OPTION]... [-r REV] [NAME]...

restore files to their checkout state

    Note:
       To check out earlier revisions, you should use "hg update REV". To
       cancel an uncommitted merge (and lose your changes), use "hg update
       --clean .".

    Returns 0 on success.

options ([+] can be repeated):

 -a --all                 revert all changes when no arguments given
 -d --date DATE           tipmost revision matching date
 -r --rev REV             revert to the specified revision
 -C --no-backup           do not save backup copies of files
 -I --include PATTERN [+] include names matching the given patterns
 -X --exclude PATTERN [+] exclude names matching the given patterns
 -n --dry-run             do not perform actions, just print output

(some details hidden, use --verbose to show complete help)

帮助中提到如果check out早期的版本,用hg update REV较好。

这次我们用revert回退到前一个版本,首先看看hg log:

$ hg log
changeset:   16:6b7d0fecb27b
tag:         tip
user:        zhaoyun
date:        Fri Jan 29 14:25:09 2016 +0800
summary:     fix some critical bug

changeset:   15:59958f71202a
user:        zhugeliang
date:        Wed Jan 27 11:42:40 2016 +0800
summary:     add xxx feature

执行revert命令

$ hg revert -r 59958f71202a --all
reverting xxx/xxx/xxx.java

版本回退了,再次进行commit+push就可以了。

时间: 2024-10-23 08:30:08

突击Mercurial SCM(HG)13---回退到指定版本的相关文章

突击Mercurial SCM(HG)

这个叫水银的源码管理工具虽然默默无闻,但还是得到了很多团队的使用.为了迎合某些团队的需要,我们也要用它来管理我们的代码. 今天的任务是先突击学习,磨刀不误砍柴工.对工具的掌握越快,工作的效率就会越高. 1.安装 首先从官网下载最新的版本,我这次做个实验,下载了3.2-rc. 解压到你指定的目录下: [[email protected] mercurial]$ ls mercurial-3.2-rc.tar.gz [[email protected] mercurial]$ tar xzvf me

突击Mercurial SCM(HG)5---Ubuntu下apache+mod_wsgi搭建hg server

在<Publishing Mercurial Repositories>这篇文章中介绍了很多种将我们自己的hg代码库发布/公开的办法.其中最轻量型的办法是使用hg自带的web server发布,只需要在代码库目录下执行命令hg serve就搞定.但是这只是一个临时的方案,如果想要更健壮更安全,官网还是建议使用hgweb脚本+Web server(apache,IIS等)的方式. 查看资料后,我权衡利弊,准备以<Serving Mercurial repositories with Apa

突击Mercurial SCM(HG)9---hgignore

项目中有些文件是不想或不应该被托管的,比如Android项目中bin下和gen的文件. .hgignore文件就是为此而生,如果你的项目路径下无此文件,说明此时还没有人来创建它,那就由你去手动添加吧. 语法 .hgignore的内容不是随便写的,它遵循一定的语法格式.目前有两种语法格式: regexp    Regular expression, Python/Perl syntax. 正则表达式,python/perl语法glob    Shell-style glob.  shell风格的通

突击Mercurial SCM(HG)6---图形化工具TortoiseHg

不得不说,在看提交记录时还是看图形化界面来的方便.用git有gitk,那么hg有什么呢?那就是今天的主题thg. Tortoise系列在源代码管理圈子中小有名气,TortoiseHg也是一样,开源,易用. 安装在Windows下自不必说,在Ubuntu上有时还是让人困惑的. 官方不推荐直接apt-get install,因为Ubuntu自带的软件源版本会很低,推荐两种方式安装: 一.ppa PPA,表示Personal Package Archives,也就是个人软件包集.有些软件进不去Ubun

突击Mercurial SCM(HG)2---当前状态

当我们clone下来代码后,默认会在某个default分支上. hg clone your-src-url 代码库克隆下来后,查看一下当前代码库的状态 14:[email protected]:Demo$ hg summary parent: 2014:xxxxxxxxxxxxxxx This is a description. branch: default commit: 3 unknown (clean) update: (current) 上述我们可以看到,最新的版本(changeset

突击Mercurial SCM(HG)4---Merge

Scenario:当自己修改完代码,准备commit之前做了一次pull+update,做了些解决冲突工作,然后验证代码是否正常工作.确认一切正常后,执行hg commit,然后执行hg push.但是网络出现问题,push失败.等到网络恢复正常后,发现自己的版本已经不是最新版了,push继续失败.提示:abort: push creates new remote head 8f1da767f592!hint: you should pull and merge or use push -f t

git 如何让单个文件回退到指定的版本【转】

本文转载自:http://blog.csdn.net/ikscher/article/details/43851643 1.进入到文件所在文件目录,或者能找到文件的路径查看文件的修改记录 1 $ git log MainActivity.java 结果: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 commit 7641210b242a95eed17827dd8159e76bdad6d619 Author: ronanhardiman <liq

Git 如何让单个文件回退到指定的版本

1.   进入到文件所在文件目录,或者能找到文件的路径 查看文件的修改记录 git log  MainActivity.java 2.   回退到指定的版本 git reset f7a220761c312d47013c394d750528f9acbc3099  MainActivity.java 3.   提交到本地 git commit MainActivity.java  -m "reset to revision" 4.   更新到工作目录 git checkout MainAc

本地仓库和远程仓库分支回退到指定的历史版本(idea)

已经提交到仓库(本地和远程仓库)的内容利用IDEA回退到原来指定版本 Revert操作:Revert操作会当成一个新的提交记录,追加到提交日志当中,这样便保留了原来的提交记录. 在想要回退历史版本上单击鼠标右键 如果有冲突,双击冲突文件查看冲突,并解决 回退后重新提交,可以同时 push 到远程仓库 这种回退的好处在于,如果后悔了“回退”这个操作,也可以回退到没有回退之前的版本,因为历史记录还保留提交记录, 但是新添加的文件被提交上去不会因为回退版本而删除,仅仅是回退修改的文件,有冲突就手动解决