【问题标题】:How can I abort a checkout if there are changes in the working directory in mercurial?如果 mercurial 的工作目录发生更改,我如何中止结帐?
【发布时间】:2013-11-05 15:06:01
【问题描述】:

有时当我在修复错误时,我想回到已知状态(提交)来检查某些内容。

我的工作目录包含更改,当我结帐到较旧的提交时,我不希望 mercurial 尝试合并更改。相反,我希望它只是中止结帐(迫使我搁置或丢弃) .

有没有办法解决这个问题,还是我需要自己写一个钩子?

【问题讨论】:

    标签: mercurial


    【解决方案1】:

    正确,您需要为此编写一个钩子。不过,这是一个简单的钩子:

    [hooks]
    preupdate = test -z "$(hg status --modified --added --removed --deleted)"
    

    这会调用hg status 来查找修改、添加、删除和删除的文件。如果找到,则测试返回非零退出代码,更新将停止。

    【讨论】:

      【解决方案2】:

      如果您在更新到修订版时使用检查开关,如果您有未提交的更改,它将中止。

      hg update --check
      abort: uncommitted local changes
      

      我建议您始终输入 check 而不是使用简写 (-c),因为如果您不小心输入了 -C,它会很高兴地更新并丢弃您的更改。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2012-04-03
        • 1970-01-01
        • 2016-03-14
        • 2012-12-29
        • 1970-01-01
        • 2016-06-10
        • 2019-01-05
        相关资源
        最近更新 更多