我正在寻找git commit --amendMercurial 的反向部分,即修改我的工作副本链接的提交的方法.该修订程序的要求是:
如果可能,它不应该要求任何扩展.它不能要求非默认扩展,即没有官方Mercurial安装附带的扩展.
如果修改提交是我当前分支的一个负责人,则不应创建新的头.如果提交不是头,则可以创建新头.
该程序应该是安全的,如果由于任何原因修改失败,我希望在修改之前恢复相同的工作副本和存储库状态.换句话说,如果修改本身可能失败,则应该有一个故障安全过程来恢复工作副本和存储库状态.我指的是修改程序性质的"失败"(例如冲突),而不是与文件系统相关的问题(如访问限制,无法锁定文件进行写入,......) )
更新(1):
更新(2):
有没有办法在使用TortoiseHg进行其他提交后,在提交时在Mercurial中编辑提交消息?我看过这些帖子:
并且当它是分支上的最新提交时(使用TortoiseHg)能够更新"常规"提交消息.但是,在我想编辑的其他提交之后,我无法弄清楚如何编辑提交消息.它总是编辑最后一次提交.
根据Ed Cottrell的评论,我做了一个测试,我在没有推送到中央仓库的情况下做了两次提交,我仍然有同样的问题 - 只能编辑最后一次提交消息.
编辑:我应该澄清,我正在寻找更新已被推动的变更集.
我在Mercurial存储库中有一些旧的提交消息应该更改(以调整一些新工具).我已经明白,必须在主存储库上完成此黑客操作,并且必须重新克隆所有本地存储库,因为所有后续更改集的校验和也将更改.
我已经尝试按照" 如何在Mercurial中编辑不正确的提交消息? "中的配方,但是使用MQ扩展我遇到了错误消息
X:\project>hg qimport -r 2:tip
abort: revision 2 is the root of more than one branch
Run Code Online (Sandbox Code Playgroud)
与Histedit非常相似
X:\project>hg histedit 2
abort: cannot edit history that would orphan nodes
Run Code Online (Sandbox Code Playgroud)
问题似乎是在变更集之后创建了分支.
如果我想改变补丁的内容,我可以看到它会变得如何变得混乱,但也许有一个我在编辑提交消息时错过的解决方法?