Git / Mercurial:结构中的独立回购

时间:2012-10-19 13:41:29

标签: git frameworks bitbucket php

我正在尝试使用Composer / Packagist列车,为此,我正在努力了解管理工作流程的最佳方式,以便我可以创建作曲家的pacakges我的选择和应用框架,但如果我可以用Git / Github或Hg / BitBucket(或两者)来解决这个问题,那该死的。

当前结构/工作流程

%path%/sites/[framework]
 - contains up to date framework git repo  
%path%/sites/[framework]/application
 - contains app specific code and is a bitbucket repo
*%path%/www/[appname]_public
 - contains public files and is a bitbucket repo i.e. "public_html" folder  

使用正确的别名,这适用于我当前的网站(每个网站是“/ sites”中的单独文件夹)。由于我使用了两个独立的repo机制,我可以随时更新该特定站点的框架,而不会真正伤害我的应用程序,反之亦然。

由于包被包含在“application”文件夹的子文件夹中(所以我可以创建并测试它们),如何将这些文件夹“包装”为包作为单独的repos,以便我可以将它们作为独立的composer包提供在github或bitbucket?我有点不知所措。

%path%/sites/[framework]/application/[module]
 - contains controllers, models, views, etc... to be wrapped up as a composer
   "package" and made available on github or bitbucket as its own repo.

也许这里有人可以帮我解决这个问题,或者如何设置它,因为我无法理解如何去做。可能吗?我是在考虑这个问题吗?

也许我的整个思维方式都是错误的。在我现有的结构中,我试图完成任务,但是Git Submodules或HG嵌套的repos似乎没有按照我预期的方式工作。

我的工作流程是否存在严重缺陷,或者我是否需要更多Git知识来完成此任务?有更简单/更好的方法吗?如果我可以将Framework / SiteApplicationCode / Packages作为单独的repos与我缺少的一些机制/逻辑保持一致,我将很乐意重建我的结构/工作流。

提前感谢您的任何帮助。

1 个答案:

答案 0 :(得分:1)

%path%/ sites / [framework] / application / [module]应该是一个git存储库,您可以通过将其推送到某些公共场所(仅在您需要时公开到公司)位置与他人共享,例如git.yourcompany .com。

然后,您可以创建一个在satisf.company.com上可访问的令人满意的编写器存储库,您将使用引用您的公共存储库的json文件进行初始化。确保首先为每个模块创建一个composer.json文件,以使它们可以进行组合器安装。

然后,使用每个应用程序的composer.json文件重新安装项目,该文件将获取所需版本的所需模块。 它们将出现在%path%/ sites / [framework] / application / vendor /中,并且将生成自动加载文件。

如果你的代码可以在github上发布,你可以跳过git + satisf部分并将你的模块提交到packagist.org

我可能误解了你的结构,但我希望你明白这个想法