【问题标题】:Strip a Mercurial branch on the server side在服务器端剥离 Mercurial 分支
【发布时间】:2015-06-01 15:14:37
【问题描述】:

我们有一个SOLUTION 文件夹(Mercurial 存储库),其中我们有一个PROJECT 文件夹,这也是一个Mercurial 存储库。

所以两个存储库:一个 - 根(解决方案)文件夹和其他 - 根文件夹(项目)的子文件夹(是的,很奇怪,但它是这样的)......

一切正常,但有一天有人以某种方式将 SOLUTION 分支包含到 PROJECT 存储库中...因此,Solution 分支的所有历史记录都与 Project 分支并行包含在 PROJECT 存储库中...。

现在 PROJECT 存储库有点乱……需要清理那个存储库……

在本地,它通过应用 hg strip rev XXS(其中 XXS 是项目存储库中新添加的解决方案分支的第一个节点的修订号)来工作。

但似乎服务器上没有条等效项?! 每次我们在项目存储库中拉入更改时,都会重新导入“解决方案”分支....

有没有办法在服务器端进行管理?

【问题讨论】:

    标签: mercurial strip


    【解决方案1】:

    当然,同样的解决方案也可以在服务器上工作。因此,您需要对服务器本身进行登录访问才能在其上执行相同的本地历史记录操作。但是对于默认设置(发布服务器),推送永远不会删除远程位置上存在的变更集;当您对本地存储库进行历史编辑时,更改不会全部传播:只会对图表添加,但不会删除。

    如果预计会推送对远程服务器的此类更改,并且这是常规操作,您可能需要研究阶段的使用以及如何设置非发布服务器,例如具有可变历史的服务器:Phases#Publishing_Repository.
    请注意,这样的工作流程还意味着每个拥有推送权限的人都必须将其默认阶段更改为“草稿”而不是“公共” - 至少对于该项目而言。

    【讨论】:

      【解决方案2】:

      杀死服务器回购。开始一个新的,然后从本地:

      hg push -rev XXR

      其中 XXR 是您要保留的最后一个转速。

      【讨论】:

        猜你喜欢
        • 2011-04-02
        • 2015-03-12
        • 1970-01-01
        • 2010-12-29
        • 2019-10-07
        • 1970-01-01
        • 2018-02-24
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多