EazyMake 1.4.1 — pkg install 支持 git 仓库 URL
1.4.0 正式发布后的首个补丁版本(单主题:ezmk pkg install 支持 git 仓库 URL)。此前 git@github.com:user/repo.git / https://github.com/user/repo.git 无法作为包来源安装;本版把「git 仓库作为包来源」落地为完整链路:识别 → 克隆 → ref 定位 → 复用目录安装链路 → lockfile 记录。公共 API 无破坏性变更(纯增量:新来源 + 新可选 flag --branch + 新可选 lockfile 字段)。
新增 / 行为变更
- git 来源检测:安装参数按「本地目录 → git URL → 归档 URL → 名称搜索」顺序判定;
git@(SSH scp)前缀 /git://·file://协议 / 剥#ref后.git结尾 → git 源;归档 URL 零误伤;is_git_url启发式提取到util(repo add 与 pkg install 共享) - 克隆安装链路:克隆到唯一临时目录 → 复用目录安装全链路(校验 → 钩子 → 依赖 → 编译 → 拷贝 → postinstall → lockfile);
git_head_commit()解析锁定 commit - ref 定位:URL 片段
#<ref>+ 新可选 flag--branch <ref>(优先级 flag > 片段 > 默认分支);分支/标签/默认分支浅克隆--depth 1,commit SHA 全量克隆 + 检出 - lockfile 记录 git 源:
LockedPackage新增可选commit字段(旧 lockfile 兼容,version 保持 1);git 源记录source="git"+source_url+commit(sha256 留空);--locked按记录的 source_url + commit 重新克隆,HEAD 与 commit 不一致 → fatal(防 force-push 漂移) - 完整性语义:git 源以 commit SHA 为指纹;显式
--sha256提示跳过;git://明文协议警告 + 确认(-y跳过)
测试
全量 1020 用例 / 5970 断言零失败(bash build.sh test-all;1.4.0 基线 1003/5835,+17 用例/+135 断言);i18n 三向一致(402 键 × en/zh + zh-TW 变体)。
资产
ezmk-windows-x64.zip(含ezmk.exe/ezmk-lua.exe/_ezmk补全)+ 独立ezmk.exe/ezmk-lua.exe(含.sha256边车,供 install.ps1 校验)ezmk-linux-x64.tar.gz/ezmk-macos-arm64.tar.gz(含ezmk/ezmk-lua/_ezmk)- 完整变更记录:CHANGES.md