我是 DVCS 的新手,所以请耐心等待...

我是一个软件库的作者,目前作为 BitBucket 上的私有(private)存储库托管。我想向公众发布我的库的源代码,但使用以下设置:

  • 我想在 BitBucket 上维护两个存储库,一个私有(private)的和一个公共(public)的。
  • 我希望公共(public)存储库的初始内容是私有(private)存储库的当前内容, 没有任何历史记录
  • 我想在不接触公共(public)存储库的情况下继续对私有(private)存储库进行提交。然后,偶尔,我想将一大堆提交提交到私有(private)存储库,并将它们推送到公共(public)存储库,将 作为单个变更集 及其自己的提交消息

  • 我怎么能把它拉下来?如果有帮助,我的私有(private)仓库只有一个分支(主要的)。

    最佳答案

    连接变更集

    好吧,可以使用 these technicsrebase extension--collapse 之一来实现连接变更集。

    分支结构

    为了做你想做的事,你必须有一个带有详细提交的开发分支和一个带有连接的发布分支。只要发布分支没有来自开发分支的任何节点作为祖先,您就只能推送发布分支。这意味着您必须使用上述选项之一,您不能将开发分支合并到发布分支,因为这会将开发分支节点设置为公共(public)分支的祖先,并且您必须推送这些节点。

    争议

    虽然这是可能的,但我同意@Ringding,这不应该是常规工作流程。以下是不这样做的两个充分理由:

  • 你给你的工作流程增加了不必要的复杂性,事情应该更简单。
  • 这些开发变更集是导致最终版本的进化步骤,它们是历史的一部分,隐藏就像撒谎一样。这就是为什么历史编辑工具是扩展而不是核心命令,它们不应该是正常工作流程的一部分。
  • 关于version-control - 我如何实现这个 Mercurial+BitBucket 工作流程?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11733271/

    10-12 00:23
    查看更多