gpt4 book ai didi

mercurial - 如何修复被 hg unshelve 破坏的存储库?

转载 作者:行者123 更新时间:2023-12-04 14:26:40 25 4
gpt4 key购买 nike

我用过 hg shelve在存储库中,我有一些未完成的更改,因为我需要切换到不同的 head 并执行不相关的更改。

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

$ 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 从哪里得到它。

如果有任何相关性,我在 Ubuntu 14.04 上运行 Mercurial 2.8.2 版。

我怎样才能让我的存储库恢复到工作状态,我怎样才能恢复我搁置的更改?

最佳答案

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

  • 使用 hg debugsetparents替换损坏的父修订号 893e15ecb5b4使用我在使用之前更新的正确版本 unshelve
  • 因为以上让我处于 Mercurial 忘记所有本地更改的状态,所以我不得不使用 hg manifest | tr '\n' '\0' | xargs -0 touch让它再次注意到任何本地变化。
  • 可以使用 patch -p1 < .hg/shelved/default.patch 恢复搁置的更改,在我的情况下,这正是 hg unshelve应该首先为我做。
  • 关于mercurial - 如何修复被 hg unshelve 破坏的存储库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30213156/

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