首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何修复被hg解架破坏的存储库?

如何修复被hg解架破坏的存储库?
EN

Stack Overflow用户
提问于 2015-05-13 11:12:53
回答 1查看 2.9K关注 0票数 6

我在存储库中使用了hg shelve,其中有一些未完成的更改,因为我需要切换到另一个头并执行不相关的更改。

当我在另一个头上的工作完成后,我切换回最初使用hg shelve并运行hg unshelve命令的头。结果是:

代码语言:javascript
复制
$ hg unshelve
unshelving change 'default'
adding changesets
adding manifests
adding file changes
added 1 changesets with 4 changes to 4 files (+1 heads)
abort: uncommitted changes
$ hg diff
warning: ignoring unknown working parent 893e15ecb5b4!
$ 

我在hg head命令之前和之后运行了unshelve,并看到了相同的输出。提交893e15ecb5b4从来不存在,我不知道Mercurial是从哪里得到的。

如果这与此相关,我正在Ubuntu14.04上运行Mercurial版本2.8.2。

如何才能使存储库恢复到工作状态,以及如何使搁置的更改返回?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-05-13 11:44:28

以下步骤为我解决了这些问题:

  1. 使用hg debugsetparents将已损坏的父版本编号893e15ecb5b4替换为我在使用unshelve之前更新到的正确版本编号unshelve
  2. 由于上述情况使我处于一种状态,即Mercurial已经忘记了所有的本地更改,所以我不得不使用hg manifest | tr '\n' '\0' | xargs -0 touch再次注意到任何本地更改。
  3. 可以使用patch -p1 < .hg/shelved/default.patch恢复被搁置的更改,在我的示例中,这完全符合hg unshelve本来应该为我做的事情。
票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30213156

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档