【发布时间】: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" 不再列出搁置。