【问题标题】:Using GIT with Joomla [closed]将 GIT 与 Joomla 一起使用 [关闭]
【发布时间】:2010-06-08 01:39:51
【问题描述】:

我们是一家网页设计公司,正在建立一个修订管理系统,以及我们将如何使用它的所有流程等。我们正在考虑使用git 修订管理系统。

我们主要在Joomla! 内容管理系统(CMS)上开发我们的网站。我想知道其他公司在处理 CMS 时如何管理他们的存储库。我们主要处理模板搭建,偶尔也会定制自己安装的组件或插件。

我的主要问题是:

  • 是将所有文件(包括 Joomla 文件)存储在存储库中的最佳方式,还是仅存储您自己创建或更改的文件?
  • 您是否在某处保留了数据库(Joomla 用于其操作和内容存储)的副本以应对数据库更改?

【问题讨论】:

  • 使用 SVN 可能更容易,因为那是 Joomla 使用的 SCM。我相信有一种方法可以将外部存储库选项添加到您自己的目录中,因此基本上 Joomla 存储库将是外部的,并且会在 Joomla 更新其源代码时提取更新,然后您只需担心自己的代码。然而,它显然(总是)比这更复杂一些,所以我相信在我之后的人将能够给你更好的建议。祝你好运!

标签: git project-management joomla


【解决方案1】:

我知道这个问题已经得到了公认的答案,但也许有人会回到这个问题并发现它很有用。

  • 我认为跟踪整个 joomla 并试图排除核心文件几乎是不可能的,正如 @vicgilbcn 所说,这可能会成为一场噩梦。
  • 另一方面,如果您正在为 J 开发组件!其中“不幸的是”在“components/com_mycomp”、“administrator/components/com_mycomp”和可能的“media/com_mycomp”中出现,你应该有 3 个单独的 git repos 来跟踪它 - 所以这也不可行。

所以我想出并且似乎工作得很好,是这样的: 假设我有一个正常的J!使用我的 com_mycomp 组件进行部署。

  • 我在 joomla 代码库之外创建了一个文件夹并将其命名为“COMMON”。
  • 在“COMMON”中我创建了一个“joomla”文件夹
  • 在“COMMON/joomla”中,我创建了“myComp”文件夹,该文件夹将保存我的组件的整个代码库
  • 在“COMMON/joomla/myComp”中,我使用 Joomla 文件夹结构并移动(不复制)“components/com_mycomp”、“administrator/components/com_mycomp”和“media/com_mycomp”在里面。
  • 然后我回到我从中删除文件夹的位置并创建 符号链接 到新位置。

这种方式现在可以在 COMMON/joomla/myComp 中创建一个 git 存储库。

显然,这个环境应该是一个本地开发环境,您可以在其中调整 apache/php 配置,而不涉及安全问题,以使其工作。 (我不记得我是否真的必须进行任何特殊的配置修改才能使其工作 - 如果它不检查日志......)

事实上,这个解决方案确实解决了另一个问题。以这种方式工作,您实际上可以将组件的代码库文件夹符号链接到两个不同的 Joomla 部署(例如 J!2.5.x 和 J3.x.x),并且能够针对不同版本立即开发/检查您的组件兼容性。

【讨论】:

  • 不错的答案! in "COMMON/joomla/myComp" I use the Joomla folder structure 你的意思是完整的 joomla 结构还是仅仅这三个文件夹:组件、管理员和媒体?谢谢
【解决方案2】:

Joe LeBlanc 的这篇文章是我发现的关于 Joomla 中的修订控制的少数内容之一!:http://joomlaablog.blogspot.it/2010/11/how-to-track-your-joomla-project-with.html

您可以采用两种通用策略来使用 Git Joomla:要么跟踪整个 Joomla 安装,要么跟踪一个 具体扩展。跟踪 Joomla 本身的主要威慑 Git 是 Joomla 代码库的绝对规模。虽然 Git 是合理的 很快,跟踪整个 Joomla 安装仍然可能是矫枉过正 如果您要添加单个模板或模块。

另一方面,将所有内容都放入 Git 可以 确定何时将补丁应用到 Joomla 站点。这可以是 当您尝试将问题跟踪到特定补丁时很有帮助。 此外,如果您正在创建许多都是经过设计的扩展 要一起工作,您可能别无选择,只能放置整个站点 受版本控制。

如果您正在开发一个扩展程序并且您知道它是唯一的一个 这将是项目的一部分,跟踪可能更有利 一个目录。 单个前端组件,仅后端 组件、模块或模板都是被跟踪的候选对象 与 Joomla 安装分开。很难跟踪插件 这样,由于放置了插件.php文件 并排在共享文件夹中。以这种方式跟踪完整的组件 也是有问题的,因为后端的变化会影响 前端。

【讨论】:

    【解决方案3】:

    对于您的第一个问题,通常大多数小组会签入与项目相关的所有文件(不包括日志和临时文件)。如果您确实要存储数据库,请存储数据库的转储(而不是二进制文件)。您应该确保同时包含数据和架构。

    【讨论】:

      【解决方案4】:

      如果您决定使用第一个选项(跟踪整个 joomla),您必须在每次添加外部扩展时对所有核心进行 .gitignore。否则,当有人安装扩展并提交它时,这将是一场噩梦。然后你必须拉后发现它,有时它不起作用。此外,Joomla 更改的版本也很难管理。

      我主张为不同的扩展提供不同的存储库,但我仍在寻找一种方法来为整个组件提供一个存储库(管理员+前端+安装)。任何想法(可能是子模块或子树合并)?

      【讨论】:

        【解决方案5】:

        我们的情况与您类似 - 拥有 Joomla 网站的设计机构。

        我们使用 Subversion,每个网站都作为存储库。当我们开始一个项目时,我们会下载最新版本的 Joomla 并将其放在 SVN 中。然后,我们将站点从 SVN 签出到本地计算机并对其进行处理,并在需要时签入。

        【讨论】:

          猜你喜欢
          • 2012-08-13
          • 1970-01-01
          • 2014-01-26
          • 1970-01-01
          • 2020-09-23
          • 1970-01-01
          • 2023-03-08
          • 1970-01-01
          • 2010-10-30
          相关资源
          最近更新 更多