我继承了一个有点奇怪的git repo,其结构如下:
if () { .. }
因此,从本质上讲,我只有一个存储库,其中包含一堆文件夹; Some Client - Programme/
├── ClientName.Thing1/
│ ├── ClientName.Thing1.sln
│ └── ClientName.Thing1.ProjectX/
│ ├── ClientName.Thing1.ProjectX.csproj
│ ├── file1.cs
│ └── file2.cs
└── ClientName.Thing2/
├── ClientName.Thing2.sln
├── ClientName.Thing2.ProjectY/
│ ├── ClientName.Thing2.ProjectY.csproj
│ ├── file3.cs
│ └── file4.cs
└── ClientName.Thing2.ProjectZ/
├── ClientName.Thing2.ProjectZ.csproj
├── file5.cs
└── file6.cs
,所有代码都位于这些顶级文件夹下面。.
工作流程似乎是,Person-A一次在ClientName.Thing1, ClientName.Thing2, etc..
上工作,而Person-B一次在ClientName.Thing2
上工作,都可以独立地...两者都可以在Visual Studio中使用* .sln文件打开。
这是什么意思,尽管它们都在不同的领域工作..它们可以“异花授粉”,因为它们都来自同一ClientName.Thing1
分支,甚至从技术上讲,Person-A尽管不是本意,但可以在Person-B正在查看的工作“区域”中编辑某些内容。
这不是最大的问题,最大的问题实际上是发布内容,尤其是构建要发布的方面的版本。没有真正的已编译代码(python,sql等),因此可以通过简单地连接到CICD管道中的存储库并部署这些东西来“摆脱”,而无需构建,这让我有点烦。 ,这意味着您不能保证始终在每个环境中部署相同的东西。
那么,这个问题!
有没有办法,如果Person-A对位于master
文件夹下的任何东西进行某些更改,以使其仅针对特定的构建定义触发构建? / p>
现在...我只能看到一种触发整个回购协议的方法,这将是超级超级嘈杂!