【问题标题】:Mercurial: Unable to unshelve shelved changesMercurial:无法取消搁置搁置的更改
【发布时间】:2015-01-22 17:46:48
【问题描述】:

似乎ShelveExtension 只是搁置您修改过的文件,而没有跟踪或删除。

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

更大的问题我无法hg unshelve 我认为是错误消息。

见下文:

搁置更改“主要”

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

重新定位搁置的更改

中止:未提交的更改

这是一种预期的行为,我只是错过了一些东西吗?

如何在不恢复/提交/等的情况下取消搁置修改的文件?

是否有与git stash 完全一样的扩展?

重现步骤:

环境:

操作系统:Windows 8

Mercurial:Mercurial 分布式 SCM(版本 3.0.1)。 安装为 cygwin /usr/bin/hg (Tortoisehg 没有安装,Windows hg 安装但没有使用)

分机号:ShelveExtension

【问题讨论】:

    标签: mercurial mercurial-extension


    【解决方案1】:

    这是一种预期的行为,我只是错过了一些东西吗?

    是的,这是正常行为。如果您希望 Mercurial 跟踪文件的创建和删除,您需要执行 hg addremove(或手动 hg addhg rm 单个文件)。重命名应使用hg mv。这有点类似于git add,只是你不需要对修改过的文件这样做。

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

    如何在不恢复/提交/等的情况下取消搁置修改的文件?

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

    是否有与git stash 完全一样的扩展?

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

    【讨论】:

    • 我发现如果我想取消搁置,我必须处理丢失和未跟踪的文件。
    猜你喜欢
    • 2016-08-30
    • 2018-01-08
    • 1970-01-01
    • 1970-01-01
    • 2017-01-09
    • 2016-04-17
    • 2014-10-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多