2010-03-19 68 views
12

我目前正在使用ClearCase,现在正在迁移到GIT。 但我们需要这种迁移方式,所有工作都将在GIT中完成,并且数据将同步备份到ClearCase流。我们将在GIT和CC中使用相同的分支名称和流名称,因此脚本编制不应该成为问题。这里的问题是,同步GIT和ClearCase

有人建议可以是同步CC和GIT

  1. 有最好的模型中,所有的VOB中的CC在GIT单回购,并在CC各种主要的流在GIT分支机构。 - 单个GIT回购(VOBS)和许多分支(CC流)。 - 由于VOB被保留为许多分支机构的单一回购,因此占用的空间更少。

  2. 将重要的CC分支作为独立的GIT存储库,并且每个存储库都具有所有的CC VOB。 - 许多CC分支的许多GIT回购 - 这将占用大量空间,因为VOB将被复制。

你认为哪是与ClearCase

回答

4

让所有的VOB中的CC在GIT单回购,并在CC作为各部门的主要流中的GIT

否,是

具有重要的CC分支机构独立的GIT存储库和每个存储库都具有所有的CC VOBs

否和否

重读my answer about Git limits,你不应该试图在Git仓库中塞入“所有”。
另请参阅“What are the basic clearcase concepts every developer should know?”,以便比较ClearCase和Git。

流可以安全地导入为分支。
但是VOB并不一定是Git Repo。

如果您使用UCM,我会推荐每个UCM组件一个Git回购。

无论如何,您需要在您的Git Repo中记录一种方式,以了解ClearCase视图用于同步数据(通过simple clearfsimport)的方式。
用于该ClearCase数据重新导入的视图将是一个UCM视图,该视图自动与右侧VOB的右侧流关联。


注:我提“How to bridge git to ClearCase?”一个简单的解决方案,但它不会导入所有历史中一个Git回购。

+1

感谢这似乎帮助了我很多。我同意将所有VOB或所有UCM组件组合成单个回购将使GIT花费很长时间来执行操作,特别是如果它像20 GB那样。你能在更多的事情上澄清我吗?让我们假设我有一个ucm组件/一个VOB的回购,但根据讨论,我们将所有重要的CC/UCM流作为回购中的分支,是否有可能让不同的开发人员同时推送到同一回购商的不同分支,而无需如果所有分支都在同一裸露回购等待? – 2010-03-20 11:24:38

+0

@Senthil:是的:你可以推动远程裸仓库中的任何分支。注意:如果您需要几个UCM组件(即多个Git仓库)来处理(读取它们或修改它们),则需要一个或多个带子模块的主项目(请参阅http://stackoverflow.com/questions/1979167/混帐子模块更新/ 1979194#1979194) – VonC 2010-03-20 14:58:44

1

关于分支和回购协议保持同步的最佳方式,我会用一个VOB ==一个混帐回购协议治随走,因为git的回购协议的真正含义被单个项目使用,就像vobs一样。

至于分行,跨VOB /回购的分行名称应该匹配。看看git中的子模块,看看它是否可以用于你的情况。

我个人希望看到的是一个成熟的git-cc后端,它允许我在我的开发箱上使用git,同时能够与我强制使用的公司CC库进行同步。

4

尽管我不一定会将其作为同步两者的“最佳”方式,但您可以通过我的git-cc工具导入历史记录并将更改推回Clearcase,如here所述。