5

我目前正试图弄清楚,在我有一个 git 存储库的情况下,如何使用 git flow 进行发布管理,其中两个解决方案中有大约 15 个项目以及数据库脚本。

每个解决方案基本上都包含一个将生成可执行文件的项目和 10 多个包含两种解决方案(如 DAL、SAP 访问包装器等)使用的基本功能的项目。
解决方案一是为用户提供 UI 的应用程序。
解决方案二是 Windows 服务。
两种解决方案的发布与数据库不同步。这意味着通常只有三个中的一个或两个被释放。这导致不同的版本号。比如UI发布比较频繁,服务发布很少。数据库介于两者之间。因此,UI 可以有 2.1.15 版本、2.1.1 服务和 2.1.5 数据库。

现在,如何处理共享项目?他们应该使用 UI 的版本号还是服务的版本号?
我如何解释其中一个共享项目的更改不会自动触发两个解决方案的发布这一事实?这意味着同时,生产环境包含同一个项目的两个不同版本。这需要以某种方式反映在存储库中。

我在这里有点迷路,任何建议,经验等将不胜感激。
我可以自由地以任何方式构建存储库和代码库,如果有帮助,我可以创建其他存储库。

4

1 回答 1

3

首先,如果您有不同的(即使有些依赖)项目,它们的差异足以让它们拥有不同的版本,那么一定要把它们放在不同的 git 存储库中。

如果您将所有产品都放在同一个存储库下,那么您只是效率低下。例如,如果您正在处理 UI,而另一个正在处理服务并对 UI 进行了小修复,那么当您将您的工作与他们合并时,您也会得到他们对服务的更改(您不在乎为了)。

在您的 15 个项目中,如果有些项目过于紧密相关,您可以将它们保存在同一个存储库中(例如 UI 的组件)。

现在您拥有不同的存储库,您可以轻松地为它们管理单独的版本和单独的版本号。

不过,您要注意的一件事是兼容性。例如,您的 2.4.5 版本的 UI 可能与 2.1.7-2.2.9 版本的服务兼容,同样,2.1.10 版本的服务可能与 2.4 版本的 UI 兼容.3-2.4.8。然后,您的软件组件的每个版本都应该能够检查其他组件的版本以确保兼容性。

于 2013-01-15T11:07:50.987 回答