混帐/ Mercurial : Separate repos in structure

标签 git frameworks bitbucket php

我正在尝试登上 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 机制,我可以随时更新该特定站点的框架,而不会真正损害我的应用程序,反之亦然。

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

我的工作流程是否存在严重缺陷,或者我是否需要更多 Git 知识才能完成此工作?有没有更简单/更好的方法?如果我可以将 Framework/SiteApplicationCode/Packages 保留为单独的存储库,并带有我缺少的某些机制/逻辑,我将很乐意重建我的结构/工作流程。

在此先感谢您的帮助。

最佳答案

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

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

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

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

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

关于混帐/ Mercurial : Separate repos in structure,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12975563/

相关文章:

git - 使用 .gitattributes 强制 LF 行结尾而不丢失自动文本/二进制推断?

git - 如何编写 Git 本地分支检查脚本?

c++ - Objective C 框架不导出某些类

javascript - 是否有用于构建在浏览器中运行的桌面应用程序的开源框架?

javascript - 如何避免被大量的框架和新版本的 JavaScript 淹没?

bitbucket - 有没有办法找出我团队中用户的电子邮件地址

git - 从git远程分支中删除文件

Git - 我在哪里可以找到实现 .gitignore 的源代码

java - 将java应用程序从bitbucket存储库部署到AWS : instance error

continuous-integration - 如何在 Bitbucket 和 Azure DevOps 之间创建 webhook?