1

几个月前我开了一个命名分支,然后我放弃了。现在我想“重新启动”它。具体来说,我想把它升级到最新版本的默认值并重新开始工作。

我尝试更新到分支,然后将其恢复为默认值,

hg revert -a -r default

但是当我在这个分支和实际默认值之间来回交换时,我看到 112 个文件已经改变,所以很明显它们是不一样的。

我最终关闭了分支,更新为默认值,再次强制切换回我命名的分支,然后强制推送(因为它创建了一个新的头)。

现在我的命名分支与默认分支相同,但我现在在我的历史记录中有这个短的死分支。

我的问题是:

  1. hg 恢复默认值在做什么?它是恢复到最近的默认祖先而不是默认的尖端吗?即使我尝试通过显式变更集恢复到提示,这两个分支最终也不同。

  2. 这样做的“正确”方法是什么?

4

1 回答 1

2

hg 恢复默认值在做什么?

对于您的(非常糟糕的)语法:

使用 -r/--rev 或 -d/--date 选项,将给定文件或目录恢复为特定修订版的状态

即对于 repo 中的所有文件,默认分支中最新祖先的状态

我看到 112 个文件已更改,所以很明显它们不一样

错误的假设

因为 revert 不会更改工作目录的父目录,所以这将导致这些文件显示为已修改。

即,您必须提交修改后的工作目录并在它之后区分(用于测试)分支负责人

这样做的“正确”方法是什么?

正确的方法是

如果您想保存特定于分支的更改并仅使用最新更改进行更新

  • 更新废弃分行负责人
  • 将分支合并default到您的分支
  • 解决所有(如果有)冲突
  • 提交合并集

如果您只想拥有空分支并从中删除所有更改

  • 从分支中退出所有变更集
  • 提交回退变更集
  • 合并默认分支
于 2013-06-06T20:42:13.410 回答