【问题标题】:hg shelve equivalent of git stash drophg shelve 相当于 git stash drop
【发布时间】:2012-04-17 13:33:15
【问题描述】:

我安装了 hg shelve(不是阁楼)扩展,我想删除一个补丁。在 git 中它将是 git stash drop。如何使用搁置扩展来做到这一点?

【问题讨论】:

    标签: mercurial shelving


    【解决方案1】:

    来自Mercurial shelve documentation(或使用hg help shelve):

    要删除特定搁置的更改,请使用“--delete”。要删除所有搁置的更改,请使用“--cleanup”。

    选项:

    -d --delete 删除命名搁置的更改

    因此,如果您的补丁名为 my-patch,那么您将使用以下命令将其删除:

    hg shelve -d my-patch
    

    【讨论】:

      【解决方案2】:

      如果不想使用搁板,可以通过以下方式进行。

      hg diff > mylocalchanges.txt
      hg revert -a
      # Do your merge here, once you are done, import back your local mods
      hg import --no-commit mylocalchanges.txt
      

      【讨论】:

      • 为避免创建 *.orig 文件,请使用:hg revert -aC
      【解决方案3】:

      Mercurial shelve 扩展将补丁存储在 .hg/shelved 下。每个都是一个简单的补丁文件,文件名就是补丁的名字。所以要删除一个名为“mypatch”的补丁,我可以简单地从 .hg/shelved 中删除文件“mypatch”:

      rm .hg/shelved/mypatch

      【讨论】:

      【解决方案4】:

      我根据 minaz 的回答创建了两个 shell 脚本:

      hgshelve

      #!/bin/sh
      hg diff > $1 && hg revert -a
      

      hgunshelve

      #!/bin/sh
      hg import --no-commit $1 && trash $1
      

      将它们放入~/bin。对于trash 命令,您需要sudo apt-get install trash-cli(或者修改脚本以不删除补丁文件,或者如果您愿意,可以使用rm)。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-03-18
        • 2015-03-16
        • 2023-03-21
        • 2017-11-25
        • 2011-12-07
        • 1970-01-01
        • 2012-06-24
        • 2016-12-11
        相关资源
        最近更新 更多