Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/mercurial/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mercurial:更新到修订版,但不修改本地文件_Mercurial_Tortoisehg - Fatal编程技术网

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

Mercurial:更新到修订版,但不修改本地文件,mercurial,tortoisehg,Mercurial,Tortoisehg,假设存储库有20个修订。记录上的当前版本为版本10,而实际本地文件基于最新版本20。我不想从第10版分支。我想继续第20版 目前我正在做的是将所有文件从修订目录中复制出来,运行hg update-C(更新修订号),删除存储库目录中的所有文件,将所有文件复制回来,然后提交。你可以看出这既烦人又浪费时间。是否有办法只更新修订号,而不修改任何本地文件 提前谢谢 编辑:有许多用例(我主要使用龟甲) 1) 在提交过程中,当提示从存储库中删除文件时,我错误地选择了“否”。我可以使用mq中的条带删除修订,但这

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

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

提前谢谢

编辑:有许多用例(我主要使用龟甲)

1) 在提交过程中,当提示从存储库中删除文件时,我错误地选择了“否”。我可以使用mq中的条带删除修订,但这将恢复所有提交的文件。相反,我想“重新创建”上一个版本的父级,再次提交,然后删除不需要的版本。这可能发生在任何人身上,不只是我,不只是一次

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

3) 存储库有两个分支C和D。大约有2000个文件。当前的提示是C。我想用C中相同的命名文件覆盖D中的一些文件(因为C更容易实现),同时保持其他文件不变,然后在D中创建新提示。我有几个选项。我可以更新到D,将D的最新版本与当前提示进行比较,进行更改并提交。更新需要一些时间,比较的难度很大程度上取决于比较工具。我也可以先比较,进行更改,备份整个目录,更新到D,然后恢复整个目录。这就更麻烦了。但如果我能“重新成为”D的家长,我只需要做出改变并做出承诺。这不依赖于比较工具,因为TortoiseHg中的提交窗口具有差异列表


如果你想思考的话,可能会有更多的用例。我希望Mercurial提供这样的“重父级”功能(据说是hg更新的一个新选项),或者至少是一个方便的选择。

您可以使用
hg debugsetparents
设置工作副本的父级修订。

您可能会发现本文很有用。原始链接不再存在,因此它现在引用Internet存档的副本:

特别是,要“重新分配”当前工作目录,请发布:

hg debugsetparent 20
hg debugrebuildstate

你是如何进入这种状态的?这不应该是浪费,因为这应该是一次性的工作。如果你需要定期这样做,我们需要找出原因,因为你肯定在做其他错误的事情。换句话说,虽然可以使用
debugsetparents
来帮助您,但这是完全错误的。这就像每次你开枪时都试图帮你固定腿,而更好的方法是教你如何瞄准猎枪。那么,作为一名家长,你是如何以第10版结束的,而以第20版内容结束的呢?虽然我同意这可能是用来解决问题的,但在我看来,他似乎经常这样做,否则就不会像他指出的那样“浪费”。有鉴于此,
debugsetparents
并不是最好的答案,但要弄清楚他是如何进入那个职位的,这是非常困难的。虽然我没有投你反对票,但我也不会投赞成票(除非这是一份一次性工作,否则你会让我投赞成票。)对我来说,投反对票似乎很愚蠢,因为从技术上讲,我真诚地提供了正确的答案。感谢debugsetparents提供的信息。但是,hg debugsetparents不会在hg internal状态下更新文件内容记录。这将导致严重的不一致性。@Anandhu谢谢,我更新了Wayback机器副本的链接。