Mercurial和Clearcase,将现有仓库转移到另一个视图

时间:2012-02-01 14:27:46

标签: mercurial clearcase

我们已经在CC快照视图中成功运行了一段Mercurial repo一段时间了。我们在视图上有源代码库,团队的基础仓库是该库的克隆。这保持了一层分离,使CC中的checkout-checkins更易于管理。

现在,由于我工作的内部原因,我们需要切换到新视图。我们应该怎么做?公司内部还有其他团队直接向CC查询文件(希望我们很快会说服他们离开),所以这应该是一个考虑因素。

如何将我们现有的仓库叠加到一个新视图中(然后我可以重新设置团队的基础仓库没有问题)?

1 个答案:

答案 0 :(得分:1)

问题是您当前的Mercurial repo和新的快照视图之间可能存在的增量(特别是使用不同的配置规范)。

由于OP在评论中提到新视图的配置规范不会改变,他建议采用比下面更简单的方法:

  • 加载新快照视图内容
  • 从磁盘中删除所有文件(不是来自ClearCase)
  • 在新(空)视图中复制原始Mercurial仓库的.hg目录
  • 更新所述Mercurial仓库的工作树(所有文件都回到原来的位置,但被ClearCase检测为被劫持)
  • cleartool update -overwrite以强制ClearCase通过ClearCase中的版本擦除这些文件。 (见man cleartool update
然后,Mercurial将检测ClearCase恢复的文件与repo中管理的文件之间的任何变化。


(原始答案)

我会:

  • 在Mercurial中创建一个专门用于迁移的分支,
  • 将其内容与快照视图进行比较(不包含任何Mercurial仓库)
  • 导入并解决从​​ClearCase视图到Mercurial repo的差异
  • 然后,一旦内容相同,直接在快照视图中克隆Mercurial仓库。

剩下的就是:

  • 将专用迁移分支提取到团队的基础仓库
  • 将该分支合并到团队基础仓库中的主要开发分支