草庐IT

混帐/ Mercurial : Separate repos in structure

coder 2024-04-20 原文

我正在尝试登上 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/

有关混帐/ Mercurial : Separate repos in structure的更多相关文章

  1. ruby - 混帐 & ruby : How can I unset the GIT_DIR variable from inside a ruby script? - 2

    我编写了一个非常简单的“部署”脚本,作为我的裸git存储库中的post-updateHook运行。变量如下livedomain=~/mydomain.comstagingdomain=~/stage.mydomain.comgitrepolocation=~/git.mydomain.com/thisrepo.git(bare)core=~/git.mydomain.com/thisrepo.gitcore==addedremoteintoeachlive&stagegitslive和stage都初始化了gitrepos(非裸),我已经将我的裸仓库作为远程添加到它们中的每一个(名为co

  2. github - 困惑 : GitHub Project broken(? ), 指令不明确 : Mercurial setup(? ) - 2

    首先,我从来没有用github做过什么,这是我第一次尝试,所以请有礼貌地帮助我上车。我想使用这个github项目:https://github.com/jmmcatee/cracklord完全是go语言。来自说明:如果你想从源代码构建东西,首先需要你有一个带有GOPATH设置的工作Go构建环境。此外,您可能需要Git和Mercurial设置来收集我们在代码中使用的各种库和插件。这是我的问题:我已经完成了git的安装,并且能够克隆repro,效果很好。我已经安装了mercurial,但不知道如何“设置”mercurial。有人可以解释一下mercurialsetup与这个githubpr

  3. windows - 当其中一个文件有错误时,如何获取特定 Mercurial 修订版的内容? - 2

    因此,我一直在使用Mercurial协调办公室内的一些源代码。长话短说,看起来我做错了什么,搞砸了,在一些修改中丢失了大量文件无论如何,一些调查工作帮助我深入了解了哪个版本出了问题,希望我可以从中恢复一些文件。问题是由于错误,我似乎无法提取该特定修订版:C:\sourcefolder>hgupdate-r147abort:case-foldingcollisionbetweenFiles/someStupidFile.pngandFiles/SomeStupidFile.png这个项目是在一台Windows机器和一台Mac上协调的,所以一些粗心导致了案例折叠问题。我知道大小写折叠问题并

  4. windows - 用于将更改拉到多个存储库的 mercurial windows 批处理文件 - 2

    我是Windows上的mercurial用户,我正在尝试编写一个批处理文件来检查对存储在一个公共(public)文件夹中的多个存储库的传入更改(即主文件夹下可能有10个左右的小mercurial存储库).我有以下批处理文件,它成功地遍历多个存储库并运行hgincoming。但是,当发现具有远程更改的存储库时,我似乎无法让它执行hg-pull-u。FOR/D/r%%Gin(".hg*")DO(@echoProcessing:%%Gcd/d%%G\..hgincomingIFNOTERRORLEVEL0(echoPullingchangesfromtheserverhgpull-u)cd.

  5. windows - 混帐狂欢 : Not accepting my keyboard input - 2

    所以,我复制了它。运行:gitls-files|grepnavbar.html|xargsvim在我的GitBash中退出vim使我的GitBash不再接受键盘输入。但是我的其他GitBash窗口工作正常。我有什么想法可以解决这个问题吗? 最佳答案 如果执行重置,它将被修复。 关于windows-混帐狂欢:Notacceptingmykeyboardinput,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.

  6. ASP.NET 网站项目、Mercurial/Git、部署——一种简单的方法? - 2

    我们有一个由两名开发人员(PC)和两名设计师(Mac)组成的小团队。由于我们是一家广告公司而不是一家代码商店,因此我们不会在软件工具上花费太多。几年前我们曾经使用VisualStudio,但现在我们使用VisualWebDeveloper来创建ASP.NET站点(.NET4支持-买不起新的VS许可证)。我们将网站创建为网站项目(而不是Web应用程序或MVC),并在专用开发箱(Win2008rc2服务器)上运行。TortoiseHg是我最近玩过的,考虑到我们的需求,Hg和Git之间的区别可以忽略不计。所以我们可以使用任何一个。我想做的是找到一种相对简单的方法来使用可与我们使用的技术/软件

  7. windows - 没有管理员权限的用户的独立 Mercurial(或其他 SCM)客户端? - 2

    我没有我的电脑的管理员权限,但想使用Mercurial(不同的SCM也可以)来跟踪更改。我安装了Mercurial,但无法安装TortoiseHg,因为我没有管理员权限。是否有不需要(直接或通过依赖项)管理员权限的替代方案?附言我正在寻找一个独立的应用程序(即,我不想要像Eclipse这样的IDE的插件)。 最佳答案 我真的发现我从来没有使用GUI来处理Mercurial,即使我有一个像样的可用(即TortoiseHg)——命令行界面非常好,你可以启用graphlog扩展来查看ascii-终端中存储库的艺术图。

  8. linux - Mercurial 回退更新机制 - 2

    我们使用mercurial对多个存储库进行源代码控制。是否有任何自动方法可以先在DEV_USER分支上更新,如果不存在则更新到default分支?谢谢。 最佳答案 所选答案非常好,但我只是想把它放在这里:hgupdateDEV_USER||hgupdate如果你愿意,你可以输入一个mercurial别名[alias]myupdate=!$HGupdate$1||$HGupdate可以调用为hgmyupdatemaybe_exists 关于linux-Mercurial回退更新机制,我们在

  9. windows - 适用于小型研究团队的 Mercurial - 2

    我们的团队由3人组成,我们希望使用Mercurial来控制代码的版本。问题是我们没有一个大家都可以访问的公共(public)服务器。有没有办法让其中一个用户成为存储库的主机,以便其他人可以连接他来处理代码?如果重要的话,我们都在使用Windows7。 最佳答案 因为mercurial是一个分布式版本控制系统,你不必有一个中央服务器,因为你可以在彼此之间克隆、推送和拉取。但是,您可以考虑在bitbucket上创建一个中央存储库。最多5个用户免费。 关于windows-适用于小型研究团队的M

  10. windows - 混帐庆典 : how to change where the MinTTY configuration file is stored? - 2

    我正在使用PortableGit,但它仍会在我的用户主文件夹中创建一些文件。我想要完全的便携性。我关注了thisanswer并将HOME变量设置为指向我创建的文件夹PortableGit\home\user(其中PortableGit是我的Git安装文件夹)。现在我发现在我changethefontsize之后创建的.minttyrc配置文件仍存储在我的用户主文件夹中,而不是\home\user。如何让git-bash在我指定的文件夹中存储和运行MinTTY的配置文件?更改HOME变量对全局.gitconfig文件成功起作用。通过这个可移植Git安装,我将在我的计算机上处​​理存储库,

随机推荐