新闻中心

如何将一个私有的Mercurial (Hg)仓库作为Composer源?(VCS仓库配置)

2025-12-15
浏览次数:
返回列表
可直接在composer.json中通过"type": "hg"配置私有Mercurial仓库,需确保本地安装hg、网络可达且凭据正确(推荐用auth.json管理),Composer会自动识别标签和分支生成版本号。

如何将一个私有的mercurial (hg)仓库作为composer源?(vcs仓库配置)

可以直接把私有 Mercurial 仓库加进 composer.jsonrepositories 里,但需要确保 Composer 能访问并克隆它——关键在于配置正确的 VCS 类型和可访问的 URL。

1. 在 composer.json 中声明 Hg 仓库

Mercurial 是 Composer 原生支持的 VCS 类型之一(和 Git、SVN 并列),只需指定 "type": "hg" 和仓库地址:

{
    "repositories": [
        {
            "type": "hg",
            "url": "https://your-server.com/hg/your-private-package"
        }
    ],
    "require": {
        "your-vendor/your-private-package": "dev-default"
    }
}

注意:dev-default 表示默认分支(通常是 default),也可用具体标签如 1.0.0 或带 dev- 前缀的命名分支(如 dev-feature/login)。

2. 确保本地能克隆该仓库

Composer 内部调用 hg clone,所以执行 composer install/update 的机器必须:

  • 已安装 hg 命令(Mercurial 客户端)且在 $PATH
  • 能通过 URL 访问仓库(HTTP(S) 需带认证,SSH 需配好密钥)
  • 如果是 HTTPS 私库,推荐用 https://user:token@... 形式嵌入凭据(如 Bitbucket Cloud 支持 App Password),或配置 auth.json

3. 使用 auth.json 管理凭据(推荐)

避免把密码写进 composer.json,在项目根目录或 Composer 全局配置目录(如 ~/.composer/auth.json)放:

Ghostwriter Ghostwriter

Replit推出的AI编程助手,一个强大的IDE,编译器和解释器。

Ghostwriter 238 查看详情 Ghostwriter
{
    "http-basic": {
        "your-server.com": {
            "username": "your-username",
            "password": "your-app-token-or-password"
        }
    }
}

这样 Composer 会自动在 HTTP 请求中带上 Basic Auth 头,适用于 Bitbucket Server、RhodeCode、自建 Kallithea 等支持 HTTP Basic 的 Hg 服务。

4. 注意分支与版本映射规则

Composer 会扫描 Hg 仓库的标签(hg tags)和分支(hg branches)来生成版本号:

  • 标签 v1.2.31.2.3 → 版本 1.2.3
  • 分支 stable → 版本 dev-stable
  • 默认分支(default)→ 版本 dev-default
  • 未打标签的提交,只能用 dev-default#abc123 指定具体变更集

建议在私有包中规范打语义化标签(如 1.0.0),方便 require 时直接写稳定版本号。

基本上就这些。只要 hg 可用、网络通、凭据对,Composer 就能像拉 Git 包一样拉你的 Hg 包——不需要额外插件或包装器。

以上就是如何将一个私有的Mercurial (Hg)仓库作为Composer源?(VCS仓库配置)的详细内容,更多请关注其它相关文章!


# 只需  # 数据智能营销推广方式  # seo标题解题技巧  # 蓟县做seo优化  # 建设网站涉及哪些问题  # 速卖通如何推广营销  # 宝坻爱采购关键词排名  # 襄樊企业网站建设  # 广州导航网站推荐优化  # 网页制作与网站建设大全  # seo群名搞笑  # 自动识别  # 相关文章  # 适用于  # word  # 不需要  # 如何用  # 如何解决  # 工作流  # 如何在  # 如何将  # asic  # app  # composer  # json  # git  # js 


相关栏目: 【 科技资讯46185 】 【 网络学院92790


相关推荐: QQ邮箱在线使用入口 QQ邮箱个人账号网页版登录  LINUX怎么设置定时任务_LINUX crontab配置教程  漫画星球免费下拉式入口 漫画星球免费漫画在线阅读网站  zookeeper 都有哪些功能?  我的世界mc.js免费游戏直接能玩 我的世界mc.js小游戏免费秒玩入口  邮政编码查询不到怎么办_邮政编码查询不到的常见原因与对策  顺丰快递查单号物流信息 顺丰快递小程序查询入口  c++如何使用chrono库处理时间_c++标准库时间与日期操作  Mac怎么锁定备忘录_Mac备忘录加密设置教程  在React函数组件中利用原生HTML5进行邮箱地址验证  在WordPress中通过REST API获取BasicAuth保护的远程文章  快速CSGO开箱网站指南 CSGO开箱平台推荐  Spyder启动失败:字体文件权限拒绝错误解决方案  将HTML Canvas内容转换为可上传的图像文件(File对象)  夸克浏览器图书入口 夸克手机浏览器阅读入口  想当下一个《2077》?《心之眼》Steam评价升至"多半好评"  深入理解J*a链表中的IPosition接口与使用  期待已久:小米17 Ultra、小米首款NAS本月登场  Python多线程中正确使用sigwait处理SIGALRM信号  如何高效处理PHP中的Excel数据导入导出?PortPHP/Spreadsheet助你轻松搞定!  MAC的“快捷指令”怎么同步到iPhone_MAC利用iCloud同步所有设备的自动化指令  J*aScript数组对象转换:按指定键分组与值收集  搜狗浏览器如何使用密码生成器创建强密码 搜狗浏览器内置密码安全工具  QQ邮箱网页版邮箱入口 QQ邮箱官方登录平台  在J*a中如何使用Stream.map转换元素_Stream映射操作解析  使用Python高效删除Word宏并转换DOCM为DOCX格式  vivo手机互传视频怎么操作_vivo手机互传视频详细传输方法  Win11网速慢怎么解决 Win11网络设置优化解除限速  AO3官网镜像链接 Archive of Our Own同人文在线浏览  c++ 获取系统当前时间 c++时间戳获取方法  GemBox Document HTML转PDF垂直文本渲染问题及解决方案  React/Next.js中实现列表项的动态移动与状态管理:兼论唯一键的重要性  绝地鸭卫平a核爆刀流玩法攻略  深入理解J*a编译器的兼容性选项:从-source到--release  Golang如何优化CPU绑定任务分配策略_Golang CPU任务分配优化实践  J*a TimerTask文件监控:HashMap状态管理与常见陷阱规避指南  解决Rails应用中内容错位与Turbo警告:meta标签误用导致富文本渲染异常  深入理解J*aScript中的B样条曲线与节点向量生成  12306选座怎么选到特殊座位_12306特殊座位选择注意事项  QQ邮箱稳定登录入口_QQ邮箱官方网站网页版使用  J*aScript中向JSON对象添加新属性的正确姿势  漫蛙manwa2最新登录网址_漫蛙manwa2手机网页版入口  如何有效阻止外部脚本意外修改内联样式的高度属性  微信群消息显示延迟如何解决 微信群消息刷新优化方法  漫蛙漫画官方首页 漫蛙2漫画在线阅读入口  拷贝漫画电脑版官网入口 拷贝漫画(PC版)在线直达  海棠账号登录入口_登录海棠账户同步阅读记录  抖音小游戏合成大西瓜免费秒玩入口链接 抖音小游戏热门合集秒玩网站  谷歌浏览器怎么给标签页静音_Chrome标签静音快捷操作  Go语言中Map存储的结构体如何调用指针方法:深入解析与实践 

搜索