version-control - 如何实现这个 Mercurial+BitBucket 工作流程?

标签 version-control mercurial open-source dvcs bitbucket

我是 DVCS 的新手,所以请多多包涵……

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

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

  • 我怎样才能做到这一点?如果有帮助,我的私有(private)仓库只有一个分支(主要分支)。

    最佳答案

    连接变更集

    好吧,可以使用 these technics 之一来实现连接变更集。或与 rebase extension--collapse .

    分支结构

    要执行您想要的操作,您必须有一个包含详细提交的开发分支和一个包含串联提交的发布分支。只要发布分支没有来自开发分支的任何节点作为祖先,您就可以只推送发布分支。这意味着您必须使用上述选项之一,您不能将开发分支 merge 到发布分支,因为这会将开发分支节点设置为公共(public)分支的祖先,并且您必须推送这些节点。

    争议

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

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

    相关文章:

    ruby - 为 Ruby 推荐的双向加密 gem?

    c++ - 是否有用于 gtest 的开源 VS2012 测试适配器?

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

    mercurial - 如何在 Mercurial DVCS 中实现提交策略

    git push 显示 "Everything up-to-date"但比较显示差异

    svn - 删除所有 checkout 的文件而不影响SVN repo

    使用 DFS 计算 SCC

    date - Mercurial - hg 更新到命名分支上的特定日期

    version-control - Mercurial 钩子(Hook) : how to find the current directory on commit

    android-studio - 如何将 'unversioned file' 添加到 github?