如何使用主“样板”保持项目的许多客户端版本是最新的

时间:2012-04-04 20:40:12

标签: git branch clone boilerplate

我们有大量的客户都有类似的网站,目前他们都配置了自己的应用程序文件夹,将覆盖系统级文件。由于变化的剧烈性质,覆盖不再看起来像是理想的解决方案,而是我想转向更多的“样板”型解决方案。我想到的工作流程如下:

  1. 拥有一个标记为我们公司名称的主“样板”,即“满载”包,所有可能的功能等。

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

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

  4. 我担心的是,每次推送/拉客户端克隆时,我都必须每次都处理冲突,因为客户端repos上的更改可能存在于任何文件中。

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

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

1 个答案:

答案 0 :(得分:0)

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

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

你几乎想要用git做的配置。您有任何配置的系统,全局和本地设置。