2012-04-16 36 views
1

我有一个项目,其中包含一个核心的Ruby on Rails项目,将为几个不同的客户端部署。我希望能够更新核心应用程序,同时在视图和公共文件夹中分别进行更改。如何使用git通过单独的客户端资产管理代码库?

换句话说,我需要每次更改app/controllers/product_controllers.rb时,所有客户端都会在app/view/products/index.html.erb或public/css/styles.css中分别管理为Acme和新公司和琼斯等

这似乎不是什么分支机构/标签是为了解决由于这些文件夹中的变化永远不会被合并不同。

+0

也许子模块或捆绑您的应用程序作为宝石的公共部分。 – apneadiving 2012-04-16 20:33:50

回答

1

我会为每个客户端创建单独的分支,并合并需要合并的更改(在您的情况控制器中),每次进行重大更改时,给予客户。

您也可以将您的代码模块(我不会建议究竟如何 - 这是给你和不同的对每一个项目),并把它们作为不同的项目。

在类Unix系统中,如果您有类似于“应用程序核心”的内容(每个项目都是通用的),您甚至可以将其保存在一个文件夹中,并使用符号链接来使用不同的项目。

+0

对于每个客户的分支,我的一个担忧是如何合并这些更改。想象一下,我为产品模型添加一个新属性,然后在控制器中为新属性添加某种处理,然后添加控制器使用的新助手。如果我在Acme的分支中这样做,我如何有效地将这些回馈给其他人?一个单独的合并命令对4个客户端来说并不坏,但是当我有100个客户端时呢?特别是如果上述导致4或5分开合并。 – 2012-04-16 22:14:54

+0

如果你要在这么多的使用相同的代码(甚至100)项目,那么它应该被视为单独的模块(类型的内核或什么的 - 在红宝石也许宝石[我不是红宝石的人,所以我不肯定])有自己的变化历史,自己的文档和拥有非常严格的API。除此之外,单元测试至关重要。我无法想象你将如何处理如此多的分歧分支。确实,4,5是好的 - 不是100。它不是一个合并问题(你可以编写bash脚本来大量使用它)。问题是在项目#42中可能会破坏某些东西,而且你甚至不会意识到它。 – shark555 2012-04-16 22:34:32

0

你仍然可以使用一个分支为每个客户端。分支机构不必合并。或者你可以为每个客户分派。它不同于分支,它创建一个单独的回购

相关问题