我们之前使用的是SVN,但最近已迁移到Git。
我们为企业应用程序提供了一个单一的存储库,并在其中包含子应用程序作为文件夹。
我们为每个子应用程序都有多个teamcity项目,这一直很好,直到我们使用SVN,因为我们可以在存储库URL中指定文件夹。但是,Git不允许在存储库URL中包含文件夹,因此无论何时在一个子应用程序中提交某些内容,所有其他子应用程序也都会构建。
一种方法是将子应用程序作为新的存储库取出,但这一举措需要时间。还有其他解决方案吗?
答案 0 :(得分:3)
你不应该将SVN与Git进行比较。这导致了这种混乱。虽然SVN是基于目录的,但Git是基于项目的,这意味着无法部分提交/更新项目。尽管如此,还是有一个解决方案,但你认为它很耗时(尽管我认为这是一项很好的投资):子模块。 您可以阅读更多here,但其要点如下:
经常发生在处理一个项目时,您需要使用其中的另一个项目。 [...] Git使用子模块解决了这个问题。子模块允许您将Git存储库保存为另一个Git存储库的子目录。这使您可以将另一个存储库克隆到项目中,并使您的提交保持独立。
Here是完整的文档。
我坚定地建议你和你的团队永远不要比较SVN和Git。即使他们有一个共同的目标,他们的使用,原则和工作,内部和外部,使他们无比,更有害而不是好。