2012-07-17 43 views
2

[注:“Perfarce”是水银延伸与整合Perforce公司名称:https://www.mercurial-scm.org/wiki/PerfarceExtension]推荐Perfarce(?或其他)的使用,以评估水银流程

我们开始评估水银的当前存储在Perforce中的项目。我们并不是放弃P4仓库并对汞进行所有改变,而是希望主要从事汞工作,并定期将变更推向P4。在评估过程中,有些开发人员可能会继续在Perforce工作,但除此之外,我们希望评估DVCS可能实现的工作流程,例如从一个开发人员的回购协议拖到另一个开发人员的回购协议。

我已经尝试过Perfarce扩展,它看起来像一个伟大的方式来使用汞作为一个先进的P4客户端与更详细的本地历史。但是,当我使用Perfarce检出两台不同机器上的同一棵树时,我得到两个具有不同变更集ID的Mercurial历史记录。看起来像这样分享更改的唯一方法就是通过P4仓库。

是否有其他选项可以让开发人员的知识库与P4同步,而不会使其在Mercurial级别上不兼容?

回答

4

老实说 - 这听起来像是一个可能导致噩梦的原因。下面是我会怎么处理它,尽量减少一些风险和痛苦的:

  • 设置Perforce的工作区“allwrite”这样的Perforce不会干扰汞之多。
  • 使用一个P4工作区将来自仓库的变更同步到mercurial仓库(并从hg返回仓库),然后从中执行mercurial push/pull工作。对待它有点像GitHub或Bitbucket上的主存储库。
  • 通过使用P4V的“协调离线工作”功能并确保仔细查看更改列表(您不想提交.hg目录),使用一个真实工作区同步将更改回Perforce。

有些学科你应该能够避免一些陷阱,尽管它肯定不是一个理想的路径。我不认为有一个单一的子弹可以让你无缝地保持你的改变在所有不同的仓库中被正确地反映出来,并且让每个人都能像平常一样工作。