gpt4 book ai didi

Mercurial:更新到修订版,但不修改本地文件

转载 作者:行者123 更新时间:2023-12-02 21:55:24 25 4
gpt4 key购买 nike

假设存储库有 20 个修订版。记录中的当前修订版是修订版10,而实际的本地文件基于最新修订版20。我不想从修订版 10 分支。我想继续修改20

目前我正在做的是将所有文件复制出修订版目录,运行 hg update -C (更新修订版号),删除存储库目录中的所有文件,将所有文件复制回来,然后犯罪。你可以看出这很烦人而且浪费时间。有没有办法只更新版本号,而不修改任何本地文件?

提前致谢。

编辑:有很多用例(我主要使用TortoiseHg)。

1) 当提交期间提示从存储库中删除文件时,我错误地选择了“否”。我可以使用 mq 中的 strip 来删除修订版本,但这将恢复所有提交的文件。相反,我想“重新设置”先前修订版的父级,再次提交,然后删除不需要的修订版。这种情况随时可能发生在任何人身上,不仅仅是我,而且不止一次。

2)我有一台开发机器A。我在它上启动了项目,几个月后切换到机器B。 A 上的代码变旧,B 上的代码发生了未提交的更改。如果我想在A上继续开发,我需要通过Flash或者网络等方式将代码复制到A上,现在我想在A上提交而不分支(因为A上的代码实际上是基于当前提示的)。这种情况发生的频率可能较低,但仍然不是“一次”问题,而且在参与大型项目时更有可能发生。

3) 存储库有 2 个分支 C 和 D。大约有 2000 个文件。当前的提示在 C 中。我想用 C 中的同名文件覆盖 D 中的一些文件(因为 C 实现得更多),同时保留其他文件不变,然后在 D 中制作新提示。我有几种选择。我可以更新到 D,将 D 的最新版本与当前提示进行比较,进行更改并提交。更新需要一些时间,比较的难度很大程度上依赖于比较工具。我也可以先比较,进行更改,备份整个目录,更新到D,然后恢复整个目录。这样就更麻烦了。但如果我可以“重新成为 D”,我只需要做出改变并提交即可。这不依赖于比较工具,因为 TortoiseHg 中的提交窗口有 diff 列表。

如果你愿意思考,可能还有更多用例。我希望 Mercurial 提供这样的“重新设置父级”功能(据说是 hg 更新的新选项),或者至少是方便的替代方案。

最佳答案

您可能会发现这篇文章很有用。原始链接不再存在,因此现在引用互联网文件馆的副本:

https://web.archive.org/web/20170805042314/http://hgtip.com/tips/advanced/2010-04-23-debug-command-tricks

特别是,要“重新设置当前工作目录的父级”,请发出:

hg debugsetparent 20
hg debugrebuildstate

关于Mercurial:更新到修订版,但不修改本地文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4436250/

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