我无法涵盖在 CMS(特别是 Joomla!)上进行软件配置管理的所有问题。当然,我正在编写自定义模板,还有自定义模块和组件。这些网站和应用程序是针对客户的,而不是内部的。
我想对站点的配置进行实际版本化,而不仅仅是其模板和组件的代码,因为我希望它能够尽快进行修复或转移给其他人。现在,这意味着存储一个完整的 Joomla!为 SVN 中的每个站点安装,包括已安装的组件和模板版本,以及存储实际的数据库导出。对于组件,我还保留了代码的“打包”版本(见下文)。我通常不会为模板而烦恼,因为您可以将其放入 Joomla!安装,它的工作原理。
我目前正在讨论的这种设置的问题在于自定义组件开发。在 Joomla!(和大多数其他 CMS)扩展通常使用 Web 安装程序部署 - 您不能(至少在最初)只是将文件放在某个文件夹中,因为需要更改数据库。Joomla!安装程序系统通过安装和卸载钩子提供数据库和文件迁移,因此它是一个非常合理的部署系统。
现在,我要么:1)直接在已安装的组件上工作,添加和更改文件,然后手动将它们复制到组件的打包版本中,或者 2)在打包的组件上工作并使用安装程序实际查看结果。这个选项通常花费的时间太长,但它确实具有保持代码“可发布”的优势,尤其是在数据库迁移方面。
在任何一种情况下,在签入之前,更改都会复制到文件的两个版本中,并且复制对我来说似乎是一种气味。
那么,还有其他人这样做吗?有更好的选择吗?