如何组织VSTS存储库

62次阅读
没有评论

问题描述

一个小公司有以下系统:
– 预客户的外部网站(已在ASP.NET Framework中创建)
– 客户的外部移动应用程序(正在使用Flutter进行开发)
– 内部定制的CRM系统,用于处理外部网站和移动应用程序收集的数据(已在ASP.NET Core中创建)
– 内部数据库和REST API服务器(已在ASP.NET Core中创建,长期不会更改)

因此,外部网站和移动应用程序通过API与内部数据库进行通信,然后内部CRM使用此API检索外部系统收集的数据。公司计划从Subversion的单一存储库迁移到VSTS的GIT。

项目经理和开发人员应该如何将项目划分到存储库中?是应该有一个存储库来管理所有产品,然后稍后配置CI/CD以同时发布几个项目?这样在单台机器上运行开发将更容易,因为API在后台运行。还是应该有几个存储库,使用测试环境来管理API和数据库版本?这将需要设置一个额外的服务器来运行Web API和数据库。

从项目经理和开发人员的角度来看,什么方法更容易和更方便使用和管理?

解决方案

请注意以下操作注意版本差异及修改前做好备份。

方案1

从构建自动化的角度来看,我认为最好使用多个存储库。这样可以更细粒度地控制构建和发布过程,并且可以允许引用和拉取源代码进行构建或发布(当然,您也可以在VSTS构建管道中忽略源代码)。

这样可以选择只发布所需的项目到所需的环境。如果需要,您当然也可以从其他构建中拉取构件并将其包含在发布中。

总结一下,我倾向于尽可能小的存储库,并且只有当它们确实属于同一个项目,并且项目的任何部分都不能在其他地方使用时,才将它们分组到同一个存储库中。

方案2

使用单个存储库管理所有产品可能会更容易在单台机器上进行开发,但可能会导致配置和管理的复杂性增加。

另一种方法是使用单个存储库来管理所有产品。这样可以更容易在单台机器上进行开发,因为API可以在后台运行。但是,这可能会导致配置和管理的复杂性增加。

如果选择这种方法,您可以使用不同的分支来管理不同的产品。例如,您可以为每个产品创建一个分支,并在每个分支上进行开发和测试。然后,您可以使用CI/CD配置来选择要发布的分支。

这种方法的优点是可以更轻松地在单台机器上进行开发,并且可以更容易地共享代码和资源。但是,它可能会导致存储库变得庞大和复杂,需要更多的配置和管理。

请根据您的具体需求和团队的工作流程选择适合您的方法。

以上是两种常见的方法,您可以根据您的具体需求选择适合您的方法。无论您选择哪种方法,都需要确保您的存储库结构清晰,并且可以轻松地进行构建和发布。

希望这些解决方案对您有所帮助!

正文完