【发布时间】:2016-07-12 16:02:10
【问题描述】:
我们在工作中使用 VisualSVN 作为我们的源代码存储库。我无法控制它(Dev 可以),我需要围绕他们当前使用它的方式进行自动化工作。
每个应用程序都被分解为不同的代码分支,这些代码分支用于 Dev 当前如何使用它,也充当其版本控制。因此,我从 SVN 中的每个应用程序的分支文件夹进行部署,而不是 Trunk。
其中一些构建构建了许多其他正在开发的应用程序使用的通用文件,并充当这些构建的先决条件。因为使用的一些 repo 包含多个分支,其中一个分支由一个应用程序使用,另一个分支用于另一个应用程序,我不应该设置 TeamCity 进行清理/结帐,然后必须再次重建所有这些分支。
为了解决这个问题,我认为只需取消选中结帐设置中的“清洁”选项即可解决此问题。但是我注意到,简单地取消选中 clean 选项并不一定会转换为简单的 SVN 更新,因为它会手动执行更新。
示例:手动,如果我进入我签出的目录并删除了其中一个代码分支文件夹,然后我可以返回并在根文件夹上右键单击 -> SVN 更新,它会检测到我丢失了该分支并将其拉回。
然而,在 TeamCity 中,从结帐文件夹中删除代码分支文件夹,然后重新运行作业,它不会检测到该分支丢失并重新检出。构建当然失败了,就是这样。这让我觉得当一个新的分支到位时,它不会检查它?
我是否缺少一些其他参数或明显的选项来让 TeamCity 执行此更新?
【问题讨论】:
-
你如何管理对其他分支中公共文件的依赖关系?您是否使用 SVN 外部功能?其次,您可以为依赖项设置自动 nuget 打包吗?他们仍然可以留在各自的分支等中,但需要它们的应用程序将只使用包而不是源代码。
-
让我先说我对这些工具非常陌生,并且正在学习它们。我不熟悉什么是 SVN 外部。对于依赖,我一直在构建项目中使用快照依赖来制作构建链。我对nuget不熟悉,所以我必须调查一下。