2012-01-28 81 views
2

我想PHPFog作为主机,我真的很喜欢它是如何工作的。GIT,Private Submodules和PHPFog

但是,我遇到了一个问题,最近推出了一个项目。该项目包含一个子模块,PHPFog表示它支持子模块,但子模块是另一台服务器上的私有存储库 - 需要SSH用户和密码。 PHPFog显然不知道,所以子模块更新和初始化init会失败。

在PHPFog上使用私有子模块有推荐的解决方法吗?我可以以某种方式将子模块合并到超级项目中并按这种方式推送?或者我可以重新配置子模块以包含SSH登录信息,允许PHPfog成功初始化它?

编辑:作为一个快速修复:我克隆到一个临时目录,删除子模块中的git文件夹,并作为单个回购上传到phpFog。这不是我正在寻找的理想解决方案。

+0

用于自动化quickfix的shell脚本:https://github.com/swt83/sh-fog/ – swt83 2012-01-31 05:56:21

回答

1

有一个新的工具,可以将应用程序与Git子模块推送到PHP雾。正常的git推送将不再为你提取子模块,你的应用将无法部署。

参见:PHP Fog's PF CLI

要使用Git子模块首先设置您的帐户推的应用程序。

pf setup 

列表您的应用程序,以验证您登录并得到应用的ID克隆。

pf list apps 

使用pf工具克隆应用程序。 请务必备份您现有的git文件夹。

pf clone <app_id> <folder> 

这里的关键是让子模块的工作:必须使用update命令和不推命令从现在开始部署。

pf update 

注:在PF setup命令将建立一个新的SSH密钥,并自动为您上传。它也为此在ssh/config中创建了一个新的别名。使用此工具后,您必须使用它来克隆您的应用程序,尽管您仍然使用git命令来添加和提交更改。如果你使用的是git子模块,你必须使用pf update,git push会破坏你的应用程序。

+0

您有意见关于我认为是git子树插件?似乎与子模块类似但语法不同。 https://github.com/apenwarr/git-subtree – swt83 2012-01-30 18:11:57

+0

另外,它似乎是一个知识渊博的人可以编写一个shell脚本来执行我使用的过程 - 克隆,合并子模块,提交,推送和删除。 – swt83 2012-01-30 18:16:01

+0

我还没有看到git-subtree,但它看起来像它值得一试。我有内幕消息,PHPFog倾向于推荐用户使用Composer。您可以创建一个引用专用回购的composer.json清单,然后运行'composer.phar update'来引入更改。请参阅:http:// packagist。组织/约作曲家 – 2012-01-30 19:00:53

0

目前PHPFog不支持私有子模块。您可以使用类似composer的软件来在本地管理软件包,并将完成的产品推送到PHPFog。

+0

+1 [作曲家](https://github.com/composer/composer)推荐 – 2012-01-29 08:08:42