0

我们有大量的客户端都有类似的站点,目前它们都配置有自己的应用程序文件夹,这些文件夹将覆盖系统级文件。由于更改的剧烈性质,进行覆盖似乎不再是理想的解决方案,相反,我想转向更多的“样板”类型的解决方案。我想到的工作流程如下:

  1. 有一个主“样板”,将标有我们公司的名称,即“完全加载”的包、所有可能的功能等。

  2. 对于每个客户端,我们将拥有该样板的新克隆,其中包含其所有特定于客户端的更改(不同的视图、图像、模型、配置等)。

  3. 每当我们在主样板上添加新功能、修复错误或提高性能时,我想将这些更改推送/拉取到每个客户端。注意:我喜欢这样一个事实,即每个客户端都需要自己的推/拉,这样如果我们不想,我们就不会被迫一次更新所有客户端。这使我们能够一次处理一个客户的潜在问题。如果需要安全推送,我可以编写一个脚本来进行批量推送/拉取。

我担心的是,每次对客户端克隆进行推/拉操作时,我都必须每次都处理冲突,因为客户端存储库上的更改可能存在于任何文件中。

我很想知道人们对处理这种情况的最佳方式有何看法。我对 git 的有限了解告诉我,分支是一个坏主意,而且由于每个克隆所需更改的性质,我认为子模块是不可能的。我已经阅读了一些关于 git rerere 的内容,但不确定这些冲突是否足够可预测以使其有效。

提前感谢您的任何建议,我真的很高兴能离开 svn 并切换到这种类型的设置,我认为这将大大提高我们的生产力和开发时间!

4

1 回答 1

0

隔离为每个供应商打开/关闭功能的代码/配置。您现在可以为每个供应商拥有一个具有自己自定义设置的分支。关键是您提供默认值,无需配置即可生效。添加配置后,它会覆盖默认值。

通过这种方式,您可以更新各个供应商分支,并且由于您没有更改任何配置,即使有自定义配置,您也将“继承”改进。

你几乎想要做 git 对它的配置所做的事情。您对任何配置都有系统、全局和本地设置。

于 2012-04-04T21:15:04.420 回答