2013-06-26 48 views
1

嘿家伙我一直在想这是否可行?我一直在思考它几个小时,我无法把它缠住它!假设我有X客户对电子商务/ cms系统感兴趣(基本上是什么),在我的完美世界中,我想有这种情况(如果你认为我疯了说服我,否则请!我是打开不同的建议):Git工作流多个存储库和重新绑定(?)

软件库(A)是电子商务系统CMS或,在它的最新版本。哪些会根据供应商发布周期进行定期更新。 (是的,我知道这里可能不是最好的软件依赖关系版本,但是如果这个3层“蛋糕”实际上是可行的,我很感兴趣)。

Design Repository(B),其中多个包含某些基础样式的起点。绑定到软件供应商的方法。

客户端存储库(C),这将是A的主人的初始结账,包含某种设计风格,比如说B-2。并将与具体的客户端功能,风格等更新

现在,让我们说,我们已经让客户满意我们的项目,我想让他们甚至更高兴保持他们的CMS /电子商务解决方案的安全提供定期更新,有没有(简单)的方式做这种工作方式的:

  1. 更新与电子商务/ CMS软件的新版本的软件仓库
  2. 提交这些更改
  3. 拉这些变化转化为相应的设计(当然,如果需要的话,会产生多个)。并提供设计中的新功能的更新或什么是。
  4. 将这些更改提交到特定的设计库中。
  5. 现在我们开始拉动我们的客户端存储库,并使用之前的更改进行更新,在此之后 - 我们可以部署。

我似乎弄清楚这一点的唯一方法是基于git-rebasing在一个存储库中,在几个分支之间,但是这似乎并不是我理想的解决方案。

我是疯子吗?或者我需要一个鳟鱼,并得到一个简单的解决方案?

感谢您花时间阅读/回复!

回答

0

这听起来对我来说更好1)启用软件的不同配置,如果失败2)使用Git分支。

我认为维护一个代码库会更容易。尝试启用大部分差异作为基于配置文件或类似配置的配置。

如果您确实需要在不同版本的代码中存在较大且永久的差异,请使用永久Git分支,以便您至少可以在分支之间轻松地使用mergecherry-pick功能和修补程序。

+0

我已经稍微调整了我的问题,我不想结束超过100个客户端在一个单一的存储库中,你会推荐什么? – wtfzdotnet

+0

@wtfzdotnet但肯定这100个客户不会都有非常不同的需求?你能参数化差异吗? –

+0

说客户端的特定(购买)插件,客户端之间的这些包会有所不同,但布局的最初基础是相同的。例如。客户端A没有获得退款插件,因为他们没有选择它,但客户B想要它并获得它(甚至可以在第四个存储库中维护它)? – wtfzdotnet