我支持一个已售出的软件,其中有数千个配置文件在我们的控制之下。我们在生产/预生产/开发环境中运行该软件。该软件由客户端的5个模块组成,服务器端由4个机构共享,每个机构都有自己的配置树,以及一组共享的配置文件。其中许多配置文件仅影响与单个机构的单个模块相关的少数几个进程。在任何给定时间,我们可能会测试许多不同的修改,每个修改的范围都有限。根据软件的架构方式,这些对彼此产生影响的情况非常罕见。
为了更好地控制这些文件,我们将整个配置树放入git存储库。我们开始基于生产创建单个主分支,并尝试在准备好进入生产时从预生产中推送文件,然后将它们拉下来。问题是我们经常直接在生产中进行更改,这也会被推高,并且两台服务器不同步。两台服务器'工作副本是实时文件。
我尝试为每个服务器创建单独的分支,但我在这里遇到了一个问题,我们可以在任何给定时间测试完全不相关的系统中的多个更改,但只想将特定的更改单独迁移到生产中,当每一个都经过测试和调整并准备就绪时。
到目前为止,我提出的最佳解决方案是,在它准备好投入生产,然后只提交文件(甚至是挑选文件的部分)之前,不进行任何更改。什么时候准备部署到生产。这方面的缺点是当前的工作变化并未在任何地方提交,并且不合适的git命令可能会在没有恢复选项的情况下将其删除(忽略常规备份,但不会覆盖日内更改但是将有助于关键的多日测试配置。)
有没有更好的解决方案来管理所有这些配置文件,使用git或其他东西?