【问题标题】:PHP Project DeploymentPHP 项目部署
【发布时间】:2011-05-03 08:56:44
【问题描述】:

我想部署我们的 php 项目,但我不知道如何使用我们的典型项目。

我们的项目基于我们的 CMS。我们使用扩展(插件)和自定义模板自定义 CMS。 CMS 核心和 CMS 扩展在 SVN 中。定制意味着,我们在模板中进行一些更改而不提交 SVN。如果SVN版本发生变化,我们可以将项目更新到最新版本,但通常会出现一些冲突......

是否有一种简单的方法可以在自定义项目中获得最新的 CMS/扩展版本?使用 PhingCapistrano 进行部署是否正确?

请给我一些提示,页面等类似的问题。非常感谢。

【问题讨论】:

  • 你听说过分支吗?还是 svn:externals ?这些将能够解决您的部分问题,同时保留一个可靠的代码存储库,其中包含您对特定客户端的更改。创建新项目时:在新分支中创建 CMS 的副本或创建单独的存储库并使用 svn:externals (或使用供应商分支)导入 CMS 代码。当你有 CMS 更新时,你可以在你认为合适的时候将它们合并到客户端 repo/branch 中。我们总是为每个客户使用不同的 repo,并为我们的 CMS 使用 1 个主 repo(这对我来说似乎很合乎逻辑)。
  • 谢谢。这似乎是合乎逻辑的。但我害怕冲突。我必须考虑制作分支/外部。理想情况下,我想自动化合并。谢谢
  • 通过供应商分支,您可以轻松地将客户特定的更改与您的 CMS 更改合并。当然不能保证不会有任何冲突,但是如果您不移动文件或重命名它们并且您没有不向后兼容的特定于客户端的更改,那么升级您的CMS 发布:p。就个人而言,我宁愿花时间解决冲突,而不是管理无数不同的未版本化项目(去过那里,做过那个,再也不会)。
  • 我完全明白 :) 谢谢 - 我正在学习 svn:externals :)

标签: php svn deployment capistrano phing


【解决方案1】:

我必须指出,您处理项目的方式完全违背了应该使用版本控制的方式。您应该始终能够提交更改 - 否则不会保留您的版本。

关于您的部署问题,我想说调查 rsync。 Phing 也是一个很好的解决方案。

【讨论】:

  • 我们“每周”从 CMS 核心创建新项目,定制需要 1 到 2 个月。所以我们有几个项目,我们不能将项目提交到一个存储库中......我们需要显示从存储库到自定义项目的更改。清楚了吗?
  • 也许——SVN 不适合这种处理方式……我们应该继续使用 Git 吗?或者做一些其他的改变?我愿意接受任何想法:)
  • wimvds 有一个很好的评论,简而言之,它说明了我工作的公司如何处理这个问题。
【解决方案2】:

这是我们用 phing 制作的构建系统,我们用它替换了我们的 capistrano 部署系统。我们只使用 Git,我们的许多项目都使用相同的构建过程,因此我们想要一个可以作为 git 子模块添加到任何项目并立即开始构建/部署的系统。如果你愿意,欢迎你使用它并分叉它。

https://github.com/CodeMeme/Phingistrano

【讨论】:

    【解决方案3】:

    为每个项目创建一个新的存储库,并使用 SVN 外部组件将 CMS 核心包含到您的项目存储库中。不提交代码是一个巨大的失败。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-05-17
      • 1970-01-01
      • 1970-01-01
      • 2011-06-21
      • 2011-05-12
      • 1970-01-01
      • 1970-01-01
      • 2012-07-17
      相关资源
      最近更新 更多