gpt4 book ai didi

Mercurial:如何修改最后一次提交?

转载 作者:行者123 更新时间:2023-12-03 04:09:44 25 4
gpt4 key购买 nike

我正在 Mercurial 中寻找 git commit --amend 的对应部分,即修改我的工作副本链接到的提交的方法。我只对最后一次提交感兴趣,而不是任意较早的提交。

此修改程序的要求是:

  • 如果可能的话,它不应该需要任何扩展。它不能不需要非默认扩展,即不随官方 Mercurial 安装一起提供的扩展。

  • 如果要修改的提交是我当前分支的一个头,则不应创建新头。如果提交不是 head,则可能会创建一个新的 head。

  • 该过程应该安全,如果由于某种原因修改失败,我希望恢复与修改之前相同的工作副本和存储库状态。换句话说,如果修改本身可能失败,则应该有一个故障安全程序来恢复工作副本和存储库状态。我指的是修改过程本质上的“失败”(例如冲突),而不是与文件系统相关的问题(例如访问限制、无法锁定文件进行写入等) )

更新(1):

  • 该过程必须可自动化,因此可以由 GUI 客户端执行,无需任何用户交互。

更新(2):

  • 不得触及工作目录中的文件(某些修改的文件可能存在文件系统锁定)。这尤其意味着,可能的方法可能根本不需要干净的工作目录。

最佳答案

随着 Mercurial 2.2 的发布,您可以使用 --amend 选项和 hg commit 来使用当前工作目录更新最后一次提交

来自command line reference :

The --amend flag can be used to amend the parent of the working directory with a new commit that contains the changes in the parent in addition to those currently reported by hg status, if there are any. The old commit is stored in a backup bundle in .hg/strip-backup (see hg help bundle and hg help unbundle on how to restore it).

Message, user and date are taken from the amended commit unless specified. When a message isn't specified on the command line, the editor will open with the message of the amended commit.

最棒的是,这种机制是“安全的”,因为它依赖于相对较新的“阶段”功能来防止更新会更改已在本地存储库之外提供的历史记录。

关于Mercurial:如何修改最后一次提交?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8182858/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com