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

2024-01-19

相关Mercurial:在一个存储库中的分支之间合并一个文件 https://stackoverflow.com/questions/1078881/mercurial-merging-one-file-between-branches-in-one-repo,我尝试对单个文件执行取消操作,即使该文件是被取消的修订版本的众多参与者之一。

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

我能找到的最接近的是使用 hg export 创建差异,手动编辑差异,然后 hg import 以相反的顺序修补文件。

..但是后来我遇到了这个恼人的情况http://hgbook.red-bean.com/read/finding-and-fixing-mistakes.html http://hgbook.red-bean.com/read/finding-and-fixing-mistakes.html声称有一个 --reverse 选项hg patch当没有的时候。

因此,我能想到的最接近的方法是生成如上所述的手动编辑补丁,然后使用 vanilla patch -R 应用反向补丁。

The hg backout命令在这里似乎很有用,但实际上是转移注意力。

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


您可以仅使用-I(包括与给定模式匹配的名称)单行回退参数:

hg backout --merge -I thefiletorevert -m 'message' OFFENDINGREVISIONID

脚本示例:

hg init testrepo
cd testrepo
echo -e "line1\n\nline3" > file1
echo -e "line1\n\nline3" > file2
hg commit -A -m 'changes to two files'
perl -pi -e 's/line1/line 1/' file1
perl -pi -e 's/line1/line 1/' file2
hg commit -m 'put spaces in line1'
perl -pi -e 's/line3/line 3/' file1
perl -pi -e 's/line3/line 3/' file2
hg commit -m 'put spaces in line3'
hg backout --merge -I file1 -m 'remove spaces from line1' 1

示例输出:

adding file1
adding file2
reverting file1
created new head
changeset 3:6d354f1ad4c5 backs out changeset 1:906bbeaca6a3
merging with changeset 3:6d354f1ad4c5
merging file1
0 files updated, 1 files merged, 0 files removed, 0 files unresolved
(branch merge, don't forget to commit)

生成的文件内容:

file1:line1
file1:line 3
file2:line 1
file2:line 3

请注意,在取消中间变更集之后,file1 在第一行中缺少空格,并且详细日志仅显示取消中更改的一个文件:

$ hg log -v -r tip
changeset:   3:6d354f1ad4c5
tag:         tip
parent:      1:906bbeaca6a3
user:        Ry4an Brase <ry4an@mini>
date:        Mon Sep 14 12:17:23 2009 -0500
files:       file1
description:
remove spaces from line1
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Mercurial 中,如何将反向补丁应用于特定文件? 的相关文章

  • Mercurial diff 在移动/重命名后不起作用

    将文件移动到另一个目录后 我无法再显示两个修订版之间的差异 例如 hg init touch a hg add a hg ci m Added a echo Bli gt gt a hg ci m Bli echo Bla gt gt a
  • Go的修订历史背后有什么故事?

    我注意到前 4 次修订f6182e5abf5e b66d0bf8da3e ac3363d7e788 172d32922e72Go 源代码都早在 Golang 被提出之前就已经存在了 最古老的是1972年 https github com g
  • 公开存储库的子集,同时保留历史记录

    我有一些受版本控制的代码 使用 Mercurial 并且想分享其中的一些代码 同时隐藏我无法发布到公共领域的其他部分 至少在现阶段 理想情况下 我希望保持公共代码的修订历史记录完整 更重要的是 能够在公共存储库和包含公共和私有代码的存储库之
  • 如何处理与 hgsubversion 的合并?

    我正在尝试为使用 Subversion 的项目做出贡献 我使用 Mercurial 及其 hgsubversion 扩展来克隆存储库 我的工作发生在功能分支上 如何使功能分支与默认分支 hgspoke 又名主干 svnspoke 上发生的事
  • 如何在远程存储库上运行 hg recovery 命令

    在 teamcity 中运行构建时出现以下错误 Failed to collect changes error C Program Files TortoiseHg hg exe config ui interactive False pu
  • 在处理其他事情时如何将一堆未提交的更改放在一边

    如果我有一堆未提交的更改 并且想在处理其他事情时将其放在一边 然后稍后 例如几天后 返回并继续工作 完成此任务最简单的工作流程是什么 到目前为止我只体验过 Mercurial 的基本功能 我通常的方法是使用克隆创建一个新分支 但可能有更好的
  • 将 Mercurial 文件夹转换为 Git 存储库

    我对 Mercurial 没有丰富的经验 我主要是一个 Git 爱好者 我希望在 git 存储库中镜像特定的 Mercurial 文件夹 文件 我实际上想做的是将文件的历史记录从 Mercurial 存储库导出到 Git 并能够使其与未来的
  • 服务器和本地之间的 Mercurial?

    我正在进行一个门户开发工作 我有时会遇到一些麻烦 例如丢失 覆盖错误的文件等 所以我决定使用 Mercurial 来进行此开发 我第一次使用源代码管理的经历 我在这个项目的服务器 bluehost 上工作 有什么办法可以在本地保存更新备份吗
  • git、mercurial、bazaar 源代码库的可理解性

    我想阅读一种流行的版本控制工具的源代码 以了解版本控制的工作原理 我想读一本最具可读性的书 我不知道对此有什么客观 定量的衡量标准 所以本着WTF 分钟漫画 http www osnews com story 19266 WTFs m 想请
  • 有条件的 Mercurial 忽略文件

    我在 Mercurial 中有一个文件 我希望开发机器提取该文件 但我希望部署服务器不提取该文件 它具有开发机器没有的特殊模块 这是可能的 还是我应该有一个自定义的推送到服务器解决方案 而不是仅仅进行 hg pull 执行此操作的典型方法是
  • Mercurial 合并两个命名分支:工作目录没有祖先

    我有两个命名分支 SPRINT 009 和 SPRINT 010 一些变更集已提交给 SPRINT 009 我想将其合并到 SPRINT 010 中 我能够毫无问题地将分支中的变更集合并回默认值 我在将变更集从branch one合并到br
  • TortoiseHg无法提交--“系统找不到指定的文件”

    我刚刚选择了 TortoiseHg 用于 Windows 上的分布式源代码控制 并将其安装在我的 C 驱动器上 然后我创建了一个存储库 位于 D projects 中 当我尝试提交更改时 它给了我错误 abort None 系统找不到 指定
  • 将 Mercurial 存储库转换为 svn 存储库

    我知道你可以将 svn 存储库转换为 Mercurial 存储库 或使用 Mercurial 作为 svn 存储库的客户端 但我想要的是将 Mercurial 存储库转换为 svn 存储库 我们有一些使用 SVNKit 的工具 我们想继续使
  • Mercurial 工作流程是否可以通过未提交的更改进行更新?

    因此 我的网站从 CVS 切换到 Mercurial 我遇到的最大问题是 如果我正在处理一些我不想提交的文件 我只需保存它们 然后我还有其他文件想要推送到服务器 但是如果其他人已经制作了对存储库进行更改 然后我将它们拉下来 它要求我合并或变
  • SQL Server 2008事务,需要回滚吗?

    我有一个存储过程BEGIN TRANSACTION and COMMIT TRANSACTION陈述 事务中是一个选择查询WITH XLOCK ROWLOCK 如果提供超出范围的值 则由于某些计算会导致算术溢出错误 交易可能会失败 此错误会
  • .hgignore 语法仅忽略文件,而不忽略目录?

    我有一个我似乎无法理解的问题 我在 Windows 上使用 TortoiseHg 版本 0 7 5 但在 Linux 上我遇到了同样的问题 这里是 My hgignore file syntax regexp 我想要实现的是将 hg 存储库
  • 当主干/分支/标签结构混乱时,如何从 Subversion 迁移到 Mercurial?

    我想将存储库从 Subversion 转换为 Mercurial 但是当我最初设置存储库时 我以最懒的方式完成了它 随着时间的推移 该结构不断变形和恶化 此时已有 5 年历史 尽管如此 我还是想保留尽可能多的历史 即使我必须弄脏并手动将东西
  • 有趣的是,当为 Mercurial 添加 .hgignore 时,该文件本身显示为“?”汞状态?

    正常吗 所以你只需要添加 hgignore到列表中忽略自身 是的 但你不想忽视 hgignore文件 当新人查看您的存储库时 您不希望他们获得您的忽略文件列表吗 相反 做hg add hgignore hg commit 底线 hgigno
  • 正在搜索 Mercurial 存储库 (TortoiseHG)?

    有什么方法可以输入特定的文件名 例如 xyz txt 并使用 TortoiseHG 在 Mercurial 存储库中搜索该文件的任何签入 如果没有 为什么不呢 这不就是版本控制的用途吗 在 Hg Repository Explorer 窗口
  • Mercurial 合并的默认主干版本?

    当我们将 Mercurial 功能发布存储库中的更改合并到主干存储库时 我们总是会与 Maven POM 文件 pom xml 和 Mercurial hgtags 文件发生冲突 我们总是想保留主干版本 我们永远不需要功能发布存储库版本 有

随机推荐

  • 如何在as3中实现撤消和重做功能

    我将创建一个应用程序 我必须实现一个撤消和重做特征 在应用程序中 舞台上将有多个对象 用户可以自定义 物体的位置 但是当用户单击 撤消 时 对象将恢复为默认值 位置 单击重做对象后将移动到新位置 所以我的问题是如何在我的应用程序中应用这些功
  • 当返回的列数是动态的时,如何计算MySQL查询的列数?

    是否可以检索查询返回的列数 这可以使用绑定的脚本语言 例如 php 轻松完成 但我正在寻找仅数据库的解决方案 Example CountCols SELECT a b c gt 3 CountCols SELECT FROM informa
  • EF Code First 4.3 命名约定外键

    我有以下实体 public class User public int ID get set public int GroupID get set navigation property with public Group Group ge
  • Java模板函数

    我有一个函数有时必须返回一个Date其他时候DateTime 乔达时间 static public
  • 设备重启后地理围栏在 Android 中保持活动状态吗

    我正在编写一个应用程序 当有人在安装的应用程序的生命周期内进入 退出多个站点时 需要使用地理围栏 当我第一次安装应用程序时 我的地理围栏实现 与下面的第二个链接非常相 似 一切正常 无论是移入 移出地理围栏时还是使用模拟位置来模拟它时 直到
  • Halide 与 C 布局 numpy 数组

    我开始使用 Halide 并在 Python 环境中使用它 在该 Python 环境中 数据作为 Numpy 数组传递 它实际上是其他地方定义的 C 数组的别名 但是 当我使用调用 Halide 函数时 出现错误 Constraint vi
  • 使用 python 运行时,Flask 调试模式给出“OSError: [Errno 8] Exec format error”

    所以 这是我制作的一个文件 flaskblog py from flask import Flask app Flask name app route def hello return h1 Home Page h1 这是我第一次运行它的方
  • 仿真给出了正常 for 循环与并行 For 的不同结果

    当我尝试使用普通 for 循环 这是正确的结果 与 Parallel For 时 我对一个简单模拟示例的不同结果感到有点惊讶 请帮我找出可能是什么原因 我观察到 与正常情况相比 并行执行速度非常快 using System using Sy
  • C语言中总线:错误10是什么意思

    下面是我的代码 import
  • div 上的 CSS 不透明度随着时间延迟而不是用户交互而变化

    我正在尝试在 div 中设置一个图像 该图像将在 5 秒内缓慢出现 不透明度从 0 到 1 我有这个代码 fadeDivIn opacity 1 transition opacity 5s ease in moz transition op
  • 我应该预先分配一个 numpy 数组吗?

    我有一个类及其方法 该方法在执行过程中会重复多次 该方法使用一个numpy数组作为临时缓冲区 我不需要在方法调用之间将值存储在缓冲区内 我是否应该创建数组的成员实例以避免方法执行期间内存分配的时间泄漏 我知道最好使用局部变量 但是 Pyth
  • Webgl:写入 gl_FragDepth 的替代方法

    在WebGL中 是否可以写入片段的深度值或以其他方式控制片段的深度值 据我所知 gl FragDepth 不存在于 webgl 1 x 中 但我想知道是否有其他方法 扩展 浏览器特定支持等 来做到这一点 我想要归档的是让光线追踪对象与使用通
  • 如何从 sql server 2012 中删除拥有架构的用户

    我在 Sql Server 2012 中创建了一个新用户 并且 意外地 将他们标记为多个架构的所有者 我本想将它们标记为架构的成员 但我在错误的选项卡上 因为他们现在是架构的所有者 所以我无法取消选择所有权 也无法删除用户 我怎样才能挽回我
  • 如何在 mapstruct 中使用来自不同类的另一个映射

    我想将模型对象映射到 dto 模型 我已经拥有其中一个对象的映射器 如何在另一个类中的另一个映射器中重用此映射器 我有以下模型 Getter AllArgsConstructor ToString public class History
  • 使用更改源时,有没有办法获取 PouchDB 中文档的所有修订?

    我现在正在摆弄 PouchDB 我使用它作为本地存储数据的一种方式 而不将其链接到 CouchDB 我一直在尝试做的是为单个文档创建一个恢复 撤消方法 为此 我想使用 doc 的先前修订版 我在阅读 PouchDB 文档时遇到了更改提要 起
  • 将鼠标悬停在信息框上会在其后面的标记上触发悬停事件

    我目前正在使用 Google 地图的 InfoBox 插件 不幸的是 我遇到了一个恼人的问题 我的应用程序上的用户可以通过将鼠标悬停在相应的标记上来打开信息框 效果很好 当信息框打开并且用户将鼠标悬停在其上时 会出现此问题 由于某种原因 标
  • 使用 React 上传多个图像

    我想先通过预览来上传多张图像 然后提交以发送它们 我遇到过这样的情况 TypeError Cannot read property files of null 它还只允许我上传一张图像 我创造了files 作为在提交之前安装图像以供审核的方
  • Windows 7下如何设置进程超时?

    我想使用 Windows 批处理文件启动一个程序 但程序应该在一定的超时值后停止 例如 运行程序60秒 60秒后停止 Linux下有这个不错的timeout命令做我想做的事 Windows 也有一个timeout命令 但它只是暂停命令 延迟
  • 生成不重复的随机数。C# [重复]

    这个问题在这里已经有答案了 大家好 我试图在 C 的同一行上生成 6 个不同的数字 但我面临的问题是有些数字在同一行上重复 这是我的代码 var rand new Random List
  • 在 Mercurial 中,如何将反向补丁应用于特定文件?

    相关Mercurial 在一个存储库中的分支之间合并一个文件 https stackoverflow com questions 1078881 mercurial merging one file between branches in