version-control - Mercurial:提交所有内容后恢复到旧版本文件的最简单方法?

标签 version-control mercurial

为简单起见,假设我有一个提交了 5 个变更集的 repo 协议(protocol)。我在变更集 2 和 4 中修改了文件 A。然而我是一个草率的程序员,我在 4 中所做的更改是错误的。我希望将文件还原为变更集 2 中的原样。其余的变更集处理我不想还原的其他文件。

最好的方法是什么?我只知道愚蠢/不聪明的方法:(

    changeset: 1
    user: jdf
    date:
    summary: first change, other file

    changeset: 2
    user: jdf
    date:
    summary: file A change - this is the file I want in this state

    changeset: 3
    user: jdf
    date:
    summary: change, other file

    changeset: 4
    user: jdf
    date:
    summary: file A change - this was dumb and I don't want it

    changeset: 5
    user: jdf
    date:
    summary: change, other file

所以在假设的变更集 6 中,我会让文件 A 处于与变更集 2 之后相同的状态,但不会丢失变更集 3 和 5 的工作。

最佳答案

答案取决于您在变更集 4 中所做的一切是否愚蠢,或者您是否只想恢复在变更集 2 中找到的这个文件。

如果变更集 4 中的所有内容都是一个坏主意,请撤消整个变更集:

hg backout -r4

如果您只需要将单个 FILE 的状态恢复为变更集 2 的状态,则使用

hg revert -r2 FILE

关于version-control - Mercurial:提交所有内容后恢复到旧版本文件的最简单方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33769227/

相关文章:

git - 如何管理针对不同客户的常见产品定制的源代码

Git、Hg 或 Bzr——向新用户推荐哪个?

mercurial - 想做一个带有 hgignore 模式过滤器的善变克隆

date - 获取 hg 提交的 Unix 时间戳(以秒为单位)

mercurial - 处理 Mercurial 中的修补程序分支

mercurial - 在 Mercurial 中,如何 merge 不相关的存储库,只留下一个根?

visual-studio - 使用 Team Foundation Server 源代码管理回滚更改

tfs - TFS Release Manager 模板是否可以版本控制?

version-control - 如何从 TFS 2015 版本控制中找到一段时间内更改最频繁的前 10 个文件?

Mercurial:如何在不进行变更集的情况下制作工作目录的快照?