【问题标题】:How best to manage TYPO3 installations using git?如何最好地使用 git 管理 TYPO3 安装?
【发布时间】:2012-08-07 23:22:24
【问题描述】:

您好,我一直想解决这个问题,但我想使用 git 来维护一些typo3 开发站点。我做了一些挖掘,关于这个主题的最丰富的信息(chromium translated site)并不清楚,但确实让我思考。我想知道如何设置一个 git 管理的 repo,如果有一些/其他文件夹在设置 repo 时我应该忽略,我应该注意什么,最佳实践等。我已经决定每个版本,将单独完成与里程碑相对应的数据库转储,因为到目前为止我不确定如何处理 CMS 版本控制的这方面。

【问题讨论】:

标签: git content-management-system typo3 web-deployment


【解决方案1】:

我想在 biesiors 非常好的答案中添加一些方面:根据我的经验,最好的策略是将 fileadmin/typo3conf/ 置于版本控制之下,一开始就没有别的。如果您使用扩展,您将因此只使用来自 TER 存储库的最新版本。扩展配置(打字稿设置、locallang 值)将放置在 fileadmin/ 中的外部文件中。示例文件夹结构:

fileadmin/
- css/
- images/
- javascript/
- scripts/
- templates/
- - html/
- - templavoila/
- - typoscript/
- - xml/

不要在数据库中存储任何打字信息 - 无法从那里进行版本控制。

在需要的地方放置.gitignore。我们也忽略typo3conf/ext/typo3conf/l10n/。为什么?如果我们编写自己的扩展(或修改现有扩展),我们会将typo3conf/ext/my_extensionname/ 添加到另一个存储库。这样,扩展本身可以得到很好的维护,尤其是在多个项目中使用时。并且根本不需要对未更改的扩展进行版本控制。

遵循@include('localconf_local.php'); 的建议 - 这是一种很好的做法。

这种设置增加了对编码纪律的更高要求,但你会得到回报!现在,我们已经成功地在一个两个人的团队中为超过 12 个项目进行了这样的工作。

【讨论】:

  • 我们目前将整个 ext/ 目录存储在 git 存储库中。您使用什么技术从自动化部署过程中的存储库中将所有扩展放在正确的位置? Git 子模块似乎非常不灵活,而且管理开销很大。使用 git subtree 技术,如果您愿意,您始终可以将扩展提取到单独的存储库中。我认为将所有扩展存储在不同的存储库中比它的价值更麻烦。请告诉我你这样做的理由。
  • 这里可能有一个误解:我们只包括我们自己开发的扩展,在大多数项目中只有一两个。 .gitignore 中的 typo3conf/ext/ 忽略所有其他扩展名
【解决方案2】:

这是典型的.gitignore

/fileadmin/user_upload/
/fileadmin/_temp_/

/uploads/

/typo3conf/temp_CACHED*
/typo3conf/temp_fieldInfo.php
/typo3conf/localconf_local.php

/typo3/
/t3lib/
/typo3temp/

请记住,当使用TYPO3git 时,您不应该在带有Extension Manager 的遥控器上安装任何扩展!

改为在本地导入 ext,在本地安装,然后提交并推送 ext 的文件和修改的 localconf.php 到远程服务器。

localconf.php 的末尾包含localconf_local.php(忽略)

@include('localconf_local.php');

它将允许覆盖即。 DB 的凭据,或自定义 ImageMagick 路径,而不更改原始 localconf.php。当然,团队中的每个开发人员都会将自己的价值观写入localconf_local.php

.gitignore 中忽略的典型 TYPO3 文件夹应在每个实例中手动创建,即。

typo3temp

fileadmin/user_upload

当然,您还需要下载 TYPO3 sorces(typo3t3lib 文件夹) - 将它们置于版本控制之下没有更大的意义。

其他的东西,比如uploads应该从远程手动下载,所以最好写一个脚本来打包它,每个开发者都可以通过一些链接下载它。您不能将其添加到 git repo,因为这些文件只是在创建内容元素时创建的,所以如果您不忽略它们,您很快就会面临巨大的合并冲突。

【讨论】:

  • 感谢您的提示。一旦我在几天内成功实施此操作,我将接受答案。
  • 您应该注意,例如“/.git/config”不会通过 HTTP 公开公开(我习惯将typo3 的东西放在 /public/ 子文件夹中)。编辑:哈哈,chmuul.net 是我的博客 :) 如果您还有任何问题,请提问。
  • 附加说明:我会看看我是否可以更详细地重写教程,翻译成英文并附上我的 capistrano 收据。
  • @include('localconf_local.php'); 部分自 v6.0 起不再有效/可能 - 但现在有更好的(官方)方法,请参阅此答案:stackoverflow.com/questions/18350213/…
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-09-04
  • 2017-09-05
  • 2021-09-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多