团队服务包含许多小项目和单个开发人员

时间:2017-08-07 07:41:30

标签: azure-devops

我公司多年来一直使用云TFS主机。现在主持人已经从互联网上消失了,许多代码和所有历史都已丢失。有人正在努力,所以它可能会被解决但我无论如何都需要在Visual Studio Online中快速设置新的源代码处理,并需要一些关于如何做的提示。

目前的解决方案是在我开始之前设置的,由于各种原因,我目前是唯一的开发人员。它可能会在未来发生变化,但每个Visual Studio解决方案永远不会有多个开发人员。

我在Visual Studio中使用许多小客户特定项目(Windows应用程序,Windows服务,WebAPI,SSRS,SQL,实体框架)。从开始编码到部署,项目的平均大小可能是20个小时(也有一些较大的项目)。部署后可能会添加新功能和错误修复(可能需要几年之后),但通常是2-6小时项目。

当前流程为每个客户提供一个TFS项目,每个项目最多包含一些Visual Studio解决方案。解决方案之间没有依赖关系,并且使用NuGet处理公共代码。

我们在云计算中有大约250个项目,即使我到目前为止只恢复了其中的50个项目,我在本地使用的项目,我们迟早会得到相似的数字。总大小在30GB的范围内(很多来自TFS,默认情况下检查nuget包文件夹)

对于大多数项目,不需要工作项,看板,报告和其他ALM功能。只有开发人员才能在线使用visual studio。我想使用分支/拉取请求/合并过程。来自Git / Mercurial我从未对TFS感到满意。

所以现在我的问题是:

  1. 构建项目的好方法是什么?

    • 单一VSTS项目的一切
    • 每位客户的VSTS项目(如今)
    • 每个Visual Studio解决方案的VSTS项目
  2. 构建存储库的好方法是什么?

    • 一切存储库
    • 每位客户一个存储库
    • 每个Visual Studio解决方案一个存储库
  3. Visual Studio和在线门户如何与数百个项目/存储库一起工作,其中90%不活动。我通常有3-5个Visual Studio实例,可以随时运行不同的解决方案。

  4. 我已阅读了很多建议,但它们似乎都涉及长期项目和/或开发团队。

    我主要担心的是:

    1. 添加新客户或Visual Studio解决方案(每周发生一次)需要做多少工作
    2. 入门时间。有时涉及外部开发人员。它并不常见但是当它发生时我不希望它们花费大量时间克隆/拉动(安全性不是问题)
    3. 标准。我希望该流程尽可能遵循标准/最佳实践,以便更容易为其他开发人员提供文档。例如不在项目名称中编码信息或强制文件夹结构。

2 个答案:

答案 0 :(得分:1)

项目结构:一切都是单一项目。

存储库结构:每个VS解决方案一个存储库

关于VS使用这些项目/解决方案,您可以关闭解决方案,然后打开另一个解决方案(您无法在VS的同一个实例中同时打开多个解决方案),您也可以打开该文件VS和编辑。关于提交和推送,您可以使用Git命令(例如git commit,push)

当涉及开发人员时,您需要将它们添加到VSTS,并且他们需要从远程克隆/拉取源代码。

答案 1 :(得分:1)

我会建议:

  • 从每个客户创建项目。例如,您可以使用客户名称创建项目,如WebAPI,SSRS,SQL等。

  • 由于VSTS项目属于某个客户相关。因此团队项目中的所有存储库都应该与客户相关。存储库的结构可以是:针对客户的每个案例/解决方案的不同存储库。

VSTS / TFS上只托管两种版本控制系统: Git TFVC 。而且您似乎熟悉Git和Mercurial,因此您可以将Git VCS用于您的项目。

在VSTS上托管的Git存储库可以像其他远程存储库一样工作,例如github,bitbucket等。它是没有工作目录的裸仓库。因此,解决方案不会存储,而是两个版本之间的校验和,并以sha-1值(40个字符)存储。在大多数情况下,您在本地仓库工作(没有连接/与远程仓库通信)。只有当您克隆/拉/推时,您的本地git仓库才会与远程仓库进行通信。