使用git进行多扩展开发时的正确策略
我已经完成了与git相关的问题,但我还没有下定决心 我已经开发了许多扩展,我想从svn迁移到git,以便能够使用更好的分支和组织 我为Magento开发扩展,其中扩展部分不位于1个文件夹下,而是分布在整个文件夹结构中 我的扩展名在以下文件夹中包含文件:使用git进行多扩展开发时的正确策略,git,magento,repository,Git,Magento,Repository,我已经完成了与git相关的问题,但我还没有下定决心 我已经开发了许多扩展,我想从svn迁移到git,以便能够使用更好的分支和组织 我为Magento开发扩展,其中扩展部分不位于1个文件夹下,而是分布在整个文件夹结构中 我的扩展名在以下文件夹中包含文件: /app/code/community/mynamespace /app/design/frontend/base/default/layout/mynamespace /app/design/frontend/base/default/tem
- /app/code/community/mynamespace
- /app/design/frontend/base/default/layout/mynamespace
- /app/design/frontend/base/default/template/mynamespace
- /app/etc/modules/skin/frontend/base/default/css/mynamespace
- /skin/frontend/base/default/js/mynamespace
- 是否将每个扩展放在自己的存储库中
- 将每个扩展嵌入包含主magento代码的超级存储库,以便可以使用子树或子模块测试扩展
谢谢大家,我觉得我离一个好的解决方案越来越近了。如果每个扩展彼此独立,您可能可以在一个单独的分支中维护每个扩展(而不是像您建议的那样维护自己的存储库) e、 g.如果您开发了3个扩展,那么您的git树中将有四个开发分支:
master
extn1
extn2
extn3
每次magento代码更改时,您都会将其拉入master,然后在master中最新更改的基础上重新设置三个开发分支的基础
如果您想用它们进行测试,只需创建一个新的测试分支,并将master、extn1、extn2和extn3合并到其中。答案非常简单,我想NomadCoder提供了解决问题的好方法。我的建议是设立开发部门和发布部门,这将有助于指导工作流程。由于合并分支很容易,这将帮助您的工作流程透明。这里是一个git代码列表,您可能会发现它在您的案例中非常有用
如果您的模块彼此完全不相关,我会在它们自己的存储库中创建它们。出于测试目的,在它自己的独立文件夹中创建一个空白安装,安装您希望开发的任何版本的Magento。然后在本文档的适当位置创建指向您提到的5个文件夹的符号链接 对于测试开发,创建一个只包含该存储库内容的项目,但由于没有主源代码的开发容易混淆,大多数IDE允许您包含来自其他文件夹的代码,因此请添加要开发测试的Magento的任何版本,以便您可以轻松地引用代码库 现在您应该能够在工作时进行测试了,分发模块可以是git导出和压缩内容的简单例子。然后您就有了一个简单的zip文件,就像其他任何分布式Magento模块一样,即sans-Magento核心文件
实际上,我刚刚开始使用一个基于phing的构建工具来简化Magento扩展开发(您可以在中找到),但它还处于早期阶段,目前还没有任何文档。是的,这是可以做到的,也是我为扩展开发所做的事情。我实现这一目标的方法是使用以下步骤:
mv .gitwp .git
git push origin master
mv .git .gitwp
使用上述系统,我可以轻松地在同一个Magento环境中处理所有扩展,同时保留单独的存储库
我希望这能有所帮助嗨,谢谢你,这似乎是一个简单的解决方案,没有复杂的子树。我可以只保留属于分支中扩展名的文件吗?还把它和主人合并?由于我不想将所有与magento相关的文件保存在每个分支中,这样做行吗?如果每次主控更改时都重新设置基础,您将丢失开发历史,并且永远无法复制代码的旧版本。这正是重新设定基准的错误理由。在这种情况下,你真的应该合并而不是重定基址。@Istvano git不会“浪费”任何空间,如果这是你所担心的。您的分支将包含对master中公共代码的引用(直到您对其进行修改)。@DietrichEpp Right,“合并”与“重基”之争。如果OP真的要向上游magento提交这些扩展,那么