mercurial - 将来自不相关存储库的提示与 Mercurial merge

标签 mercurial merge

我有两个不相关的存储库“公共(public)”和“开发”:

prj/
  public/
  develop/

'develop' 有很多提交,因为这里是我工作的地方。甚至可能有多个头
有时我想发布开发存储库的快照。

从公用文件夹我可以这样做:
>hg pull -f ../develop
>hg merge
>hg commit -m "alpha2"

但这也会将完整的变更集历史从“开发”拉到“公共(public)”(这不是我想要的)。

我也可以从“public”中删除所有文件,除了“.hg”子文件夹。
然后手动复制“开发”目录中的所有文件并执行
>hg commit -m "alpha2"

但随后我必须“添加”新文件、“删除”过时文件并再次“重命名”移动文件。

使用 -A带有 commit 的选项会盲目地添加/删除所有文件,即使它们在“开发”存储库中不受控制。

必须有更有效的方法来做到这一点;-)

最佳答案

我建议你只是回顾完整的历史,但如果你因为某种原因不能忍受,那么你可以做以下任何事情:

  • 使用 ConcatenatingChangesets 将所有变更集从开发到公共(public)的单个结果变更集 - 或 -
  • 公开删除所有文件,在开发中创建一个“hg 存档”,然后公开扩展它——这只会让你得到控制文件——或者
  • 在开发中使用“hg manifest”为 xargs 供电以仅移动您想要的文件 - 或 -
  • 在开发中执行“hg diff -r last-changeset-in-public -r tip”,然后在公共(public)中使用“hg import”应用生成的差异,您将在公共(public)
  • 中将完整更改作为单个变更集

    其中任何一个都应该做同样的事情,但它们都有点丑陋,因为一般来说,扔掉历史是很难做到的。

    关于mercurial - 将来自不相关存储库的提示与 Mercurial merge ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1368080/

    相关文章:

    r - 合并数据框以消除缺失的观察结果

    javascript - Google App Script - 合并多个文档,删除所有换行符并通过电子邮件以 pdf 形式发送

    python - 如何基于跨 2 个数据框的共享列创建具有列值的新列?

    git - 当本地主分支上没有工作时, git pull --rebase 是否与 git pull 相同?

    Mercurial:检测到 merge 冲突时不显示编辑器

    git - 艺术家能否在开源环境中真实地应对(分布式)版本控制?

    linux - 类似 Mercurial 的创建 git 远程仓库的方法

    Mercurial extdiff 一次一个

    git - 了解 Mercurial、Bazaar 等的内部结构?

    svn - 颠覆: How to merge a specific commit