【发布时间】:2011-05-03 08:56:44
【问题描述】:
我想部署我们的 php 项目,但我不知道如何使用我们的典型项目。
我们的项目基于我们的 CMS。我们使用扩展(插件)和自定义模板自定义 CMS。 CMS 核心和 CMS 扩展在 SVN 中。定制意味着,我们在模板中进行一些更改而不提交 SVN。如果SVN版本发生变化,我们可以将项目更新到最新版本,但通常会出现一些冲突......
是否有一种简单的方法可以在自定义项目中获得最新的 CMS/扩展版本?使用 Phing 或 Capistrano 进行部署是否正确?
请给我一些提示,页面等类似的问题。非常感谢。
【问题讨论】:
-
你听说过分支吗?还是 svn:externals ?这些将能够解决您的部分问题,同时保留一个可靠的代码存储库,其中包含您对特定客户端的更改。创建新项目时:在新分支中创建 CMS 的副本或创建单独的存储库并使用 svn:externals (或使用供应商分支)导入 CMS 代码。当你有 CMS 更新时,你可以在你认为合适的时候将它们合并到客户端 repo/branch 中。我们总是为每个客户使用不同的 repo,并为我们的 CMS 使用 1 个主 repo(这对我来说似乎很合乎逻辑)。
-
谢谢。这似乎是合乎逻辑的。但我害怕冲突。我必须考虑制作分支/外部。理想情况下,我想自动化合并。谢谢
-
通过供应商分支,您可以轻松地将客户特定的更改与您的 CMS 更改合并。当然不能保证不会有任何冲突,但是如果您不移动文件或重命名它们并且您没有不向后兼容的特定于客户端的更改,那么升级您的CMS 发布:p。就个人而言,我宁愿花时间解决冲突,而不是管理无数不同的未版本化项目(去过那里,做过那个,再也不会)。
-
我完全明白 :) 谢谢 - 我正在学习 svn:externals :)
标签: php svn deployment capistrano phing