【问题标题】:Multiple builds on a commit一次提交的多个构建
【发布时间】:2018-02-15 21:43:09
【问题描述】:

我们之前使用的是 SVN,但最近迁移到了 Git。

我们的企业应用程序有一个单一的存储库,其中包含子应用程序作为文件夹。

每个子应用程序都有多个 teamcity 项目,这在我们使用 SVN 之前运行良好,因为我们可以在存储库 URL 中指定文件夹。但是,Git 不允许在存储库 URL 中包含文件夹,因此每当在一个子应用程序中提交某些内容时,也会构建所有其他子应用程序。

一种方法是将子应用程序作为新的存储库取出,但这一举措需要时间。还有其他解决办法吗?

【问题讨论】:

  • 找一个懂svn、git和你的构建环境的人,把你的构建环境从svn过渡到git。如果您想要单独的历史记录,请将历史记录分开。试图将 svn 视为 git 的人会发布类似的困惑问题。
  • 答案是否帮助您解决了问题?如果是,您可以将其标记为答案。它也将使有类似问题的其他人受益。
  • 谢谢大家的帮助。TeamCity 支持建议使用结帐规则来解决这个问题,它对我有用。

标签: git svn version-control teamcity


【解决方案1】:

您永远不应该将 SVN 与 Git 进行比较。这导致了这种混乱。虽然 SVN 是基于目录的,但 Git 是基于项目的,这意味着无法部分提交/更新项目。尽管如此,还是有一个解决方案,但您认为它很耗时(尽管我真的认为这将是一项不错的投资):子模块。 你可以阅读更多here,但它的要点如下:

经常发生在处理一个项目时,您需要使用其中的另一个项目。 [...] Git 使用子模块解决了这个问题。子模块允许您将 Git 存储库作为另一个 Git 存储库的子目录。这使您可以将另一个存储库克隆到您的项目中并保持您的提交分开。

Here 是完整的文档。

我强烈建议您和您的团队永远不要比较 SVN 和 Git。尽管它们有着共同的目标,但它们的用法、原则和运作方式,无论是内部还是外部,都使它们无与伦比,而且弊大于利。

【讨论】:

    猜你喜欢
    • 2020-09-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多