Mercurial:无法取消搁置的搁置变化

时间:2015-01-22 17:46:48

标签: mercurial mercurial-extension

似乎ShelveExtension只会修改您修改过的文件,使其无法跟踪或删除。

我是Mercurial的新手并且来自git所以对我来说这不是预期的。

更大的问题我无法hg unshelve我所假设的是一条错误消息。

见下文:

  

令人不安的变化'主'

     

暂时提交待处理的更改(使用'hg unshelve --abort'恢复)

     

重新搁置搁置的变更

     

abort:未提交的更改

这是预期的行为,我只是遗漏了什么?

如果不恢复/提交/等等,我怎么能取消修改我修改过的文件?

是否存在与git stash完全相同的扩展程序?

重现的步骤:

enter image description here

环境:

操作系统:Windows 8

Mercurial:Mercurial Distributed SCM(版本3.0.1)。 安装为cygwin / usr / bin / hg(未安装Tortoisehg,已安装Windows hg但未使用)

扩展名:ShelveExtension

1 个答案:

答案 0 :(得分:2)

  

这是预期的行为,我只是遗漏了什么?

是的,这是正常行为。如果您希望Mercurial跟踪文件创建和删除,则需要hg addremove(或手动hg addhg rm单个文件)。应使用hg mv重命名。这与git add模糊地类似,不同之处在于您不需要为修改后的文件执行此操作。

当你取消搁置时,你的工作目录应该是干净的。至少,它不应该有任何丢失的文件(在!中以hg st为前缀),也不应该有任何修改过的文件(前缀为M)。您可以随时进行临时提交并稍后hg strip

  

如果不恢复/提交/等等,我怎么能取消修改我修改过的文件?

在一般情况下,没有理智的方法可以做到这一点。如果工具架包含对不再存在的文件的更改,该怎么办?如果已提交文件删除,则可能会生成修补程序冲突,这就是Mercurial所做的事情。但是,如果没有承诺与之发生冲突,对这种情况没有明显的反应。

  

是否存在与git stash完全相同的扩展程序?

据我所知,但这超出了StackOverflow的范围。