【问题标题】:Remove all local bookmarks and commits from mercurial repository从 mercurial 存储库中删除所有本地书签和提交
【发布时间】:2016-07-29 05:31:33
【问题描述】:

我正在寻找最简单的方法来删除所有本地提交(即未在远程存储库中提交)并从 mercurial 存储库中删除所有本地书签。我知道我可以运行 hg bo | xargs hg strip && hg bo | xargs hg bo -d 之类的东西(显然是去掉提交哈希),但是当我堆叠提交时,我很难尝试这样的事情。

是否有一种简单的(如果有点笨拙的话,也许)方法来消除对存储库副本的所有本地更改,从而为您留下一个与远程存储库完全镜像的方法?谢谢!

【问题讨论】:

  • 顺便说一句,普通的hg foo 不能与 xargs 一起使用,因为它是默认格式

标签: mercurial repository commit


【解决方案1】:
  1. 为了去除子树,你可以手动去除最老的祖先

strip 命令删除指定的变更集及其所有后代。

  1. 为了获得未发布变更集的根,您可以使用修订集和模板。如果你有一个远程仓库(带有default 别名),那就是
hg log -r "roots(outgoing())" -T "{node|short}\n"

对于许多遥控器,revset 可以修改为

roots(outgoing(PATH1) & outgoing(PATH2) ... & outgoing(PATHN))

或(有一些假设:a)Mercurial 支持阶段 b)未使用的秘密阶段 c)远程回购是普通的“发布回购”)

roots(draft())

(默认情况下,未推送的变更集处于草稿阶段)

【讨论】:

    猜你喜欢
    • 2015-04-28
    • 1970-01-01
    • 2019-10-21
    • 2023-04-06
    • 2013-11-01
    • 2021-05-28
    • 1970-01-01
    • 1970-01-01
    • 2021-05-24
    相关资源
    最近更新 更多