TeamCity-SVN更新?

TeamCity-SVN更新?,svn,teamcity,Svn,Teamcity,我们在工作中使用VisualSVN作为源代码存储库。我不能控制它(Dev可以),我需要围绕他们当前如何使用它来进行自动化工作 每个应用程序都被分解成不同的代码分支,这些代码分支对于开发人员当前如何使用它,也起到了版本控制的作用。因此,我从SVN中每个应用的分支文件夹部署,而不是从主干部署 其中一些是构建其他许多正在开发的应用程序所使用的公共文件的构建,并作为这些构建的先决条件。由于使用的一些回购协议包含多个分支,其中一个分支由一个应用程序使用,另一个分支用于另一个应用程序,因此我不需要设置Tea

我们在工作中使用VisualSVN作为源代码存储库。我不能控制它(Dev可以),我需要围绕他们当前如何使用它来进行自动化工作

每个应用程序都被分解成不同的代码分支,这些代码分支对于开发人员当前如何使用它,也起到了版本控制的作用。因此,我从SVN中每个应用的分支文件夹部署,而不是从主干部署

其中一些是构建其他许多正在开发的应用程序所使用的公共文件的构建,并作为这些构建的先决条件。由于使用的一些回购协议包含多个分支,其中一个分支由一个应用程序使用,另一个分支用于另一个应用程序,因此我不需要设置TeamCity进行清理/签出,然后重新重建所有这些分支

为了解决这个问题,我认为只要取消签出设置中的“Clean”选项,就可以解决这个问题。但是我注意到,简单地取消选中clean选项并不一定会转换为简单的SVN更新,因为手动执行更新时会发生这种情况

示例:手动,如果我进入我的签出目录并删除其中一个代码分支文件夹,我可以返回并在根文件夹上执行右键单击->SVN更新,它会检测到我缺少该分支并将其向下拉

但是,在TeamCity中,从签出文件夹中删除代码分支文件夹,然后重新运行作业时,不会检测到该分支丢失并重新检查。构建当然失败了,就是这样。这让我觉得,当一个新的分支机构成立时,它不会检查它吗


我是否缺少一些其他参数或明显的选项来让TeamCity执行此更新?

我认为在TeamCity中使用构建链/快照依赖项不是解决问题的正确方法-例如,建议

指定构建链的最常见用例是在不同平台上运行项目的相同测试套件。例如,在发布构建之前,您希望确保测试在不同的平台和环境下正确运行。为此,您可以指示TeamCity运行测试,然后先运行集成构建,然后再运行发布构建

相反,使用允许您签出代码和所有依赖项(例如,可以在SVN repo中的任何其他位置),并使用相对路径引用项目中的依赖项。缺点是每次都要构建所有依赖项

或者,打包您自己的包(可以完成)意味着您的项目只引用NuGet包(在特定版本),因此不需要构建依赖关系。您将需要设置NuGet存储,但这可以像共享文件夹一样简单


这些方法的优点是,它们在本地和TeamCity中都可以工作,也就是说,否则您需要手动构建每个依赖项。

如何管理与其他分支中的公共文件的依赖项?您是否使用SVN外部功能?其次,能否为依赖项设置自动nuget打包?他们仍然可以留在各自的分支等,但需要它们的应用程序只会使用软件包,而不是源代码。让我先说一下,我对这些工具非常陌生,并且正在不断学习。我不熟悉SVN外部是什么。对于依赖项,我一直在使用构建项目中的快照依赖项来生成构建链。我不熟悉nuget,所以我必须调查一下。谢谢,这非常有帮助,我同意构建链并没有真正实现我想要的。我将研究设置NuGet打包,并阅读SVN外部。谢谢你的帮助。