【问题标题】:hg unshelve seems to have no effect?hg unshelve 好像没有效果?
【发布时间】:2010-05-06 20:23:27
【问题描述】:

我们的团队刚刚开始使用 Mercurial。我们开始玩的第一件事是hg shelve。在本地,我搁置更改没有问题。据我所知,这一切都很完美。但是,当我尝试取消搁置时,我收到了 restoring backup files 消息,但是当我运行 hg diff 时,没有任何更改,并且代码中缺少我的更改。如果我这样做 hg unshelve -i 我可以看到差异,但同样,尝试取消搁置似乎没有任何效果。

我一直在尝试通过一些非常简单的更改来测试它,这些更改在冲突方面不应该成为问题,例如添加测试评论。我应该注意我已经尝试了hg unshelve -f,之后它显示unshelve completed,但我的更改没有恢复。

任何想法我做错了什么?

如果重要:Mercurial 分布式 SCM(版本 1.5.1+20100405)

【问题讨论】:

  • 刚刚发现这个:bitbucket.org/tksoh/hgshelve/issue/11/… Soooo,hg unshelve 刚刚坏了?看起来对吗?
  • 值得一提的是hg shelve不是mercurial的一部分,它是别人的第三方扩展。我怀疑shelve 不属于 mercurial 的一个原因是它并不真正符合 mercurial 的心态。搁置的善变方法是要么只提交然后更新到一个修订版,要么快速克隆你的 repo。克隆是即时的,几乎不占用空间(现代文件系统上的硬链接),并且没有您未提交的更改。即使您的团队最终使用 shelve,您也应该从 vanilla mercurial 开始,以便他们学习成语。
  • 另外值得一提的是,Bryan O' Sullivan 是 hgshelve 的作者之一,也是 Mercurial 的核心开发人员,因此它不仅仅是一些随机的第三方扩展。无论如何,首先要学习简洁的方法,但不要阻止人们使用 Mercurial,但它对他们来说很方便。
  • 我使用“hg shelve -i | patch -p1”作为解决方法。
  • "hg unshelve -i | patch -p1" 帮助我恢复,我不得不删除 .hg/shelves 以便 "hg shelve -l" 不再列出搁置。

标签: mercurial shelve unshelve


【解决方案1】:

试过那个叉子,它可以工作:https://bitbucket.org/astiob/hgshelve/

所以答案似乎是,是的,它坏了,是的,那个叉子修复了它。

【讨论】:

  • “astiob”分支已被拉入“tksoh”主线。我仍然有问题,使用 Mecurial 1.7.1。
  • 那个叉子对我也不起作用,但@Nick 的评论起作用了:hg shelve -i | patch -p1
【解决方案2】:

作为更新,我目前使用的是 Mercurial Distributed SCM (version 2.9.1) 版本,没有任何问题。如果您仍然遇到 unshelve 问题,我建议您更新到最新的 Mercurial 版本。

【讨论】:

    猜你喜欢
    • 2016-05-19
    • 1970-01-01
    • 2018-11-05
    • 2018-02-25
    • 2019-04-06
    • 2012-03-10
    • 1970-01-01
    • 1970-01-01
    • 2017-05-10
    相关资源
    最近更新 更多