【问题标题】:Git / Mercurial : Separate repos in structureGit / Mercurial:结构中的单独回购
【发布时间】:2012-10-19 13:41:28
【问题描述】:

我正在尝试乘坐 Composer / Packagist 火车,为此,我正在尝试了解管理我的工作流程的最佳方式,以便我可以使用我选择的框架创建 composer 包和应用程序,但该死的,如果我能用 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 机制,我可以随时更新该特定站点的框架,而不会真正损害我的应用程序,反之亦然。

由于包包含在“应用程序”文件夹的子文件夹中(因此我可以创建和测试它们),我如何将这些文件夹“包装”为包作为单独的存储库,以便我可以将它们作为独立的作曲家包提供在 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 子模块或 HG 嵌套存储库似乎并没有像我预期的那样工作。

我的工作流程是否存在严重缺陷,或者我需要更多的 Git 知识来完成这项工作?有没有更简单/更好的方法?如果我可以将 Framework / SiteApplicationCode / Packages 作为单独的存储库保留一些我缺少的机制/逻辑,我会很高兴地重建我的结构/工作流程。

提前感谢您的帮助。

【问题讨论】:

    标签: git frameworks bitbucket php


    【解决方案1】:

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

    然后,您可以创建一个可在 satis.company.com 访问的 satis composer 存储库,您将使用一个引用您的公共存储库的 json 文件对其进行初始化。确保首先为每个模块创建 composer.json 文件,以使它们可安装。

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

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

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

    【讨论】:

    • 谢谢你,但我不相信它解决了我的问题,除非我错过了什么。我有一个来自 github 的只读存储库,用于使用 git 拉下的框架。我在 bitbucket 有一个针对应用程序特定代码的普通仓库,它是框架仓库的子文件夹。现在我希望将模块文件夹添加为单独的存储库,它们是特定于应用程序的代码文件夹的子文件夹。通过这种方式,我使框架保持最新和独立,应用程序特定的代码保持最新和独立。我只是希望将模块也分开,但我认为这是不可能的。
    • 如果您可以在您的 bitbucket 存储库中编写 composer.json 文件,那么您可以从 packagist.org 或 satis.yourcompany.com 拉取 composer 包。这些包可以是你的模块。
    • 谢谢greg0ire。我明白你在说什么。我试图考虑如何在 github/bitbucket 上单独获取这些模块,并试图将你的答案包裹在我被迷惑的思考过程中。明白你现在在说什么了。再次感谢!
    • 很高兴你明白了,确实很复杂!
    猜你喜欢
    • 2011-03-03
    • 1970-01-01
    • 1970-01-01
    • 2011-05-30
    • 2017-03-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-30
    相关资源
    最近更新 更多