如何回归未来?

时间:2013-06-06 19:19:34

标签: mercurial

几个月前我开了一家名叫分店,然后我放弃了。现在我想“重启”它。具体来说,我想把它带到最新版本的默认版本并再次开始处理它。

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

hg revert -a -r default

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

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

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

我的问题是:

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

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

1 个答案:

答案 0 :(得分:2)

  

什么是hg还原为默认值?

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

  

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

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

  

我看到112个文件已经改变,显然它们不一样

错误的假设

  

因为revert不会更改工作目录parent,所以这会导致这些文件被修改。

必须提交已修改的工作目录和差异(用于测试)分支的负责人

  

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

正确的方法是

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

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

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

  • 从分支机构退出所有更改集
  • 提交backout-changeset
  • 将默认值合并为分支