首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在mercurial中,如何将反向补丁应用于特定文件?

在mercurial中,如何将反向补丁应用于特定文件?
EN

Stack Overflow用户
提问于 2009-07-06 09:33:54
回答 2查看 9.4K关注 0票数 20

Mercurial: Merging one file between branches in one repo相关,我正在尝试对单个文件执行回退操作,即使该文件是被回退的修订的众多参与者之一。

HG是一个面向变更集的工具,它不想对文件进行操作。

我能找到的最接近的方法是使用hg export创建一个diff,手工编辑diff,然后hg import以相反的顺序修补文件。

然后我遇到了这种恼人的情况,http://hgbook.red-bean.com/read/finding-and-fixing-mistakes.html声称有一个-- ..but选项可以返回到hg patch,而实际上没有。

所以我能想到的最接近的方法就是像上面那样生成一个手工编辑的补丁,然后使用普通的补丁-R来应用一个反向补丁。

hg backout命令在这里看起来很有用,但实际上是在转移注意力。

一定有更好的办法,不是吗?

EN

回答 2

Stack Overflow用户

发布于 2009-07-06 10:24:43

下面是我要做的:使用技巧修订版的新克隆。

代码语言:javascript
复制
hg backout --merge -r revision_where_the_change_happened

将反转的更改合并到工作副本中。

现在将有问题的文件复制到常规工作副本并提交

代码语言:javascript
复制
hg commit -m "Reversed the changes to file.h made in revision bla"

并丢弃你在上面创建的克隆。

这样,mercurial不知道revision_where_the_change_happened和这个提交之间存在连接。如果您希望mercurial记住这一点,那么可以使用

代码语言:javascript
复制
hg revert {all files except the one in question}

在合并回退之后,提交到工作副本中,然后提交。对于第二种方式,您不需要在克隆上工作,因为您希望保留回退提交。

我猜测,选择使用哪种方式取决于特定文件更改在变更集中所占的比例。

票数 6
EN

Stack Overflow用户

发布于 2009-07-10 10:04:34

使用revert命令。

代码语言:javascript
复制
hg revert -r1 file

这应该会将文件的内容恢复到修订版1中的版本。然后,您可以进一步编辑它并像往常一样提交。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1086222

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档