我试图为OpenCart设置版本控制的代码库,以及单独版本控制的OC模板,主题和插件。OpenCart版本控制如何忽略模板/主题/插件
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条件不跟踪任何东西除index.php之外的插件/主题文件夹中。
然后我可以将我的插件放到插件文件夹中,并且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核心升级完全有可能伴随着一个新文件,我永远不知道它存在,所以我从来没有在版本控制下得到它,并且它没有出货到我的新网站。这可以通过在我升级时在我的当前OC和新OC之间进行文件系统比较来处理,并将任何新文件添加到.gitignore。这不会经常发生,但它仍然非常难看IMO。
选项2的想法开始感觉有点干净。我不介意特别忽略我添加的任何模块的文件。真正的问题是当我调整特定网站的文件时。这似乎是经常发生的事情,并不是很多人完全按照下载的主题发生。
我真的不想拥有这样的线条。
# Ignore files belonging to mywebsite.com
/upload/catalog/view/theme/mywebsite.com/**/*
当只有一个OC实例使用这些文件时。
这或多或少是我怀疑的。我知道许多模块也使用VQMods,有没有一个目录(或多个目录),这些文件通常会在哪里结束? – Jamie
所有VQMOD最终都在/ vqmod/xml/ 它们不会更改任何核心文件,它们会生成新的已更改副本,并将其保存在/ vqmod/vqcache / –