使用mercurial,我可以只推送一个包含所有内容的修订版吗?(推和折叠)

时间:2011-11-18 00:16:53

标签: mercurial

我正在编写一个开源项目,我在我的机器上完成了所有工作,现在我想将项目推送到Codeplex.com,但我不想发送所有旧历史。

可以将一个修订版中的所有文件推送到Codeplex,并在本地继续我的历史记录吗?像推和折叠的东西

2 个答案:

答案 0 :(得分:2)

否 - DVCS依赖于您在分发集中的成员之间同步所有历史记录这一事实。

如果您想要删除历史记录,在推送到Codeplex之前,您可以执行以下操作:

  • 在您要“删除”的历史记录之前,将本地存储库克隆到修订版本。我们称之为克隆“Repository B”。
  • 将存储库A更新到要应用的提示。抓取更改,并将文件复制到克隆的存储库B.您可以更新一个包或补丁,但为了简洁起见,我只是快速而肮脏:)
  • 在存储库B上,提交包含所有这些更改的单个变更集。
  • 从现在开始,存储库B就是您的主人。将其推送到Codeplex。

正如您所看到的,您不能在与另一个克隆同步的一个克隆上拥有历史变更集数据,但在您推送到Codeplex之前,您可以将所有这些更改都压缩到一个提交中 - 只要你也很高兴在当地失去历史。

另一种方法是使用Mercurial Queues来“折叠”历史记录,但需要在推送到Codeplex之前完成 - 请查看this wiki page以获取更多信息。

答案 1 :(得分:1)