OpenCart版本控制如何忽略模板/主题/插件

时间:2017-02-21 04:22:55

标签: git version-control opencart

我正在尝试为OpenCart设置版本控制的代码库,以及单独版本控制的OC模板,主题和插件。

WordPress模拟

通过将以下内容放入我的.gitignore文件中,我已经完成了与WordPress类似的操作

/public_html/wordpress/wp-content/plugins/**/*
!/public_html/wordpress/wp-content/plugins/index.php

/public_html/wordpress/wp-content/themes/**/*
!/public_html/wordpress/wp-content/themes/index.php

告诉WP repo不要跟踪插件/主题文件夹中的任何内容,除了index.php。

然后我可以将我的插件放入plugins文件夹中,git status不返回任何更改。当我更新我的WP代码库时,我可以将其拉入。

我想在OpenCart中使用类似的工作流程,但是如果将所有OC主题文件分散出去,它会更加有趣。

选项1。 我想知道使用相同的方法来设置我的OC .gitignore以排除除核心文件之外的所有内容。基本上

#For every directory that a theme/template/plugin file might land
/path/to/dir1/**/*
!/path/to/dir1/corefile1
!/path/to/dir1/coredir1/**/*
...
!/path/to/dir1/corefileX
!/path/to/dir1/coredirY/**/*
...
/path/to/dirZ/**/*
!/path/to/dirZ/corefile1
!/path/to/dirZ/coredir1/**/*
...
!/path/to/dirZ/corefileM
!/path/to/dirZ/coredirN/**/*

在我看来,它可能会失控。新主题/模板/插件会放置文件的位置是否有限?当我安装一个将文件丢弃到正常位置之外的奇怪插件时,这个系统是否会崩溃?我不希望我的.gitignore变成我必须明确包含每个核心OC文件的东西。

选项2。 以我明确忽略作为主题/文件/插件的一部分添加的每个文件的方式创建我的.gitignore文件。这种方法看起来也很乏味。由于我必须将此添加到我的核心OC存储库的忽略文件中,因此每个OC项目都将具有所有其他项目的忽略规则。

选项3。 只是放弃这种方法。在这种情况下,每当我想要更新OC核心时(例如从v2.2到v2.3),我只需要隐藏/弹出我已安装的所有附加内容。

选项1是我倾向于但不仅仅是通过它,我希望有更多OC插件经验的人可以让我知道它是多么可行。

我也有兴趣听取任何其他解决方案。

更新

根据卢卡斯提供的信息,我开始看看我可以用我的选项1策略做些什么。我几乎立刻就放弃了。

首先,我为语言文件创建了以下规则。

# Ignore everything in the language folder
/uploads/catalog/language/**/*
# Except default language
!/uploads/catalog/language/en-gb/**/*

我遇到的问题是,如果我安装了一个添加了一个en-gb语言文件的模块,它最终会包含在这个存储库中。所以这又让我处于相同的情况,我必须决定是否应该明确忽略模块文件,或明确包含每个核心en-gb文件。

如果我必须明确包含所有文件,那么完全有可能OC核心升级带有一个新文件,而且我从来不知道它存在,所以我从来没有得到版本控制,它没有& #39;运送到我的新网站。这可以通过在我升级时对当前OC和新OC进行文件系统比较来处理,并将任何新文件添加到.gitignore。这不会经常发生,但它仍然是非常丑陋的IMO。

选项2的想法开始变得更清洁了。我不介意专门忽略我添加的任何模块的文件。真正的问题是我调整特定网站的文件。这似乎是经常发生的事情,并不是很多人完全发生与下载完全一样的主题。

我真的不想要像。

这样的行
# Ignore files belonging to mywebsite.com
/upload/catalog/view/theme/mywebsite.com/**/*

当只有一个OC实例使用这些文件时。

1 个答案:

答案 0 :(得分:1)

主题很容易被忽略 - 它们位于/ catalog / view / theme / *

如果新主题没有等效文件,则默认为默认提供服务,因此不应触及。

默认语言是/ catalog / language / en-gb / *,任何其他语言都必须有意添加。

许多模块在6(!)个不同的地方添加了文件:

/admin/controller/module/
/admin/model/module/
/admin/view/theme/default/module/

/catalog/controller/module/
/catalog/model/module/
/catalog/view/theme/default/module/

某些模块也可能会添加新的语言文件。

有些模块在数据库中创建新表,而其他模块可能只是在现有表中添加新列。

老实说,这真是一团糟。

对于您正在使用git projet的版本克隆当前OC安装的全新安装可能是值得的,将现有安装复制到其上以查看它所做的更改,仅作为起点。