如何使用modman在github中管理模块?


12

我正在尝试使用modmanhttps://github.com/colinmollenhour/modman)在github中管理我的扩展程序。

首先,我尝试将MagePsycho_Someext扩展名添加为演示。

到目前为止,我已经完成了以下步骤

/var/www/magento-dir/ -> My Magento Installation Dir
/var/www/MagePsycho_Extensions/ --> Git Repository Dir
  1. cd /var/www/MagePsycho_Extensions/
  2. git clone git@github.com:magepsycho/Someext.git
  3. touch modman
  4. git commit -am 'Modman file added'
  5. git push origin master
  6. cd /var/www/magento-dir/
  7. modman init
  8. modman clone git@github.com:magepsycho/Someext.git
  9. 使用以下文件在/ var / www / magento-dir中开发了扩展名'MagePsycho_Someext'
    • app / etc / modules / MagePsycho_Someext.xml
    • 应用程序/代码/本地/MagePsycho/Someext/etc/config.xml
    • 应用程序/代码/本地/MagePsycho/Someext/Helper/Data.php

10在/var/www/magento-dir/.modman/Someext/modman中将文件映射信息添加为

app/etc/modules/MagePsycho_Someext.xml  app/etc/modules/MagePsycho_Someext.xml
app/code/local/MagePsycho/Someext/etc/config.xml app/code/local/MagePsycho/Someext/etc/config.xml
app/code/local/MagePsycho/Someext/Helper/Data.php app/code/local/MagePsycho/Someext/Helper/Data.php

11 modman update Someext

但出现以下错误:

WARNING: Target does not exist (.modman/Someext/modman):
 app/etc/modules/MagePsycho_Someext.xml  app/etc/modules/MagePsycho_Someext.xml

注意:我正在开发扩展/var/www/magento-dir/。并希望使用modman在github中部署这些扩展(每个存储库一个)。完成模块开发后,我希望将这些文件添加到存储库中。为此,我使用了.modman / * / modman文件进行映射。但无法使其正常工作。

我在哪里和想念什么?
还是这是不正确的方法?

[编辑]

我只是意识到我的方法正好相反。首先,您必须添加扩展文件和具有路径映射的modman,将其推送到存储库,然后使用来将其拉出modman clone

如果先开发扩展,然后使用modman将更改推送到存储库,该怎么办?


1
目前无法提供全面的答复,但通常您不应该在.modman文件夹中进行修改。这是一个很好的起点github.com/colinmollenhour/modman/wiki/Tutorial
Zifius 2014年

我不确定在哪里管理映射。在/ var / www / MagePsycho_Extensions / Someext / modman中?如果是,则必须将更改推送到github并使用modman update将其拉出?
MagePsycho 2014年

我不明白为什么您要直接引用扩展,如果在存储库中,则可以直接从那里下载。
Allan MacGregor 2014年

在扩展根仓库中,应该有一个定义了映射的modman文件。
艾伦·麦格雷戈

等待,您是否正在尝试将扩展名从/ var / www / magento-dir /拉到单独的存储库中?
Allan MacGregor 2014年

Answers:


7

最后,我想出了使用modman管理Magento模块的方法(虽然不是完美的方法,但对我有用)

假设条件

/var/www/magento-dir/ -> My Magento Installation Dir
/var/www/MagePsycho_Extensions/ --> Git Repo Dir
  1. cd /var/www/MagePsycho_Extensions/
  2. git clone git@github.com:magepsycho/Someext.git
  3. touch modman
  4. git commit -am 'Modman file added'
  5. git push origin master
  6. cd /var/www/magento-dir/
  7. modman init
  8. modman link /var/www/MagePsycho_Extensions/Someext
  9. 现在,使用以下文件在/var/www/magento-dir/.modman/Someext中开发扩展名“ MagePsycho_Someext”
    • app / etc / modules / MagePsycho_Someext.xml
    • 应用程序/代码/本地/MagePsycho/Someext/etc/config.xml
    • 应用程序/代码/本地/MagePsycho/Someext/Helper/Data.php

10将/var/www/magento-dir/.modman/Someext/modman中的文件映射信息添加为

app/etc/modules/MagePsycho_Someext.xml  app/etc/modules/MagePsycho_Someext.xml
app/code/local/MagePsycho/Someext/etc/config.xml app/code/local/MagePsycho/Someext/etc/config.xml
app/code/local/MagePsycho/Someext/Helper/Data.php app/code/local/MagePsycho/Someext/Helper/Data.php

11 modman repair
12 cd /var/www/magento-dir/.modman/Someext
13 git add app/etc/modules/MagePsycho_Someext.xml app/code/local/MagePsycho/Someext/etc/config.xml app/code/local/MagePsycho/Someext/Helper/Data.php
14 git commit -m 'Extension files updated.'
15 git push origin master
16就是这样。

总之,您将在与magento-dir符号链接的magento-dir / .modman / Someext目录中工作。每当将新文件添加到扩展名时,都必须更新modman文件并运行modman repair,以使符号链接保持最新状态。

如果有人有更好的方法,请分享。


6

因此,我的建议是,因为无论如何您都具有扩展名的本地副本,然后使用linkand deploy命令而不是clone

就您而言,您只需致电:

  1. modman init
  2. modman link ../Your_Extension_Path (如果这是一个扩展名)
  3. modman deploy Your_Extension_Path

此方法需要您在扩展目录中使用文件映射来完成modman文件,但从您的注释看来,您已经拥有了该文件。

根据我的理解,文件首先需要位于扩展名dir中,然后将其链接到magento dir中,因此以后在对magento下的文件进行编辑时,扩展名文件也将更改。也许有一种从magento目录创建modman扩展名的方法,但可惜我不知道。

从Magento将文件处理到扩展名目录的一种简单方法是打开两个Windows资源管理器以打开窗口并复制它们,或者使用类似午夜的命令

注意:我只将modman用于php版本,但是此过程适用于该版本


/ var / www / MagePsycho_Extensions /将具有更多扩展名,例如:具有不同存储库的Extension1,Extension2。使用您的方法会有所不同吗?
MagePsycho 2014年

不确定,但我想您只需要两个级别的链接../MagePsycho_extenstion/Extension1就可以,然后部署将是MagePsycho_extenstion/Extension1或者Extension1我不确定是否尝试一下。
David Manners 2014年

在遵循链接和部署方法之后,出现相同的错误警告:目标不存在(.modman / MagePsycho_Someext / modman):app / etc / modules / MagePsycho_Someext.xml app / etc / modules / MagePsycho_Someext.xml
MagePsycho

@MagePsycho,您的扩展名中实际上有此文件吗?
David Manners 2014年

2
根据我的理解,文件首先需要位于扩展名dir中,然后将其链接到magento dir中,因此以后在对magento下的文件进行编辑时,扩展名文件也将更改。也许有一种从magento目录创建modman扩展名的方法,但可惜我不知道。
David Manners 2014年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.