From 12652bfd524697241b893d4a4e1672ecc3608f2c Mon Sep 17 00:00:00 2001 From: ruki Date: Thu, 14 Apr 2022 00:37:13 +0800 Subject: support git commit as require version --- xmake/modules/private/action/require/impl/actions/download.lua | 2 +- xmake/modules/private/action/require/impl/package.lua | 6 +++++- 2 files changed, 6 insertions(+), 2 deletions(-) (limited to 'xmake/modules/private') diff --git a/xmake/modules/private/action/require/impl/actions/download.lua b/xmake/modules/private/action/require/impl/actions/download.lua index ad0e7bc37..2275c96f7 100644 --- a/xmake/modules/private/action/require/impl/actions/download.lua +++ b/xmake/modules/private/action/require/impl/actions/download.lua @@ -79,7 +79,7 @@ function _checkout(package, url, sourcedir, url_alias) git.clone(url, {longpaths = longpaths, outputdir = packagedir}) -- attempt to checkout the given version - local revision = package:revision(url_alias) or package:tag() or package:version_str() + local revision = package:revision(url_alias) or package:tag() or package:commit() or package:version_str() git.checkout(revision, {repodir = packagedir}) -- update all submodules diff --git a/xmake/modules/private/action/require/impl/package.lua b/xmake/modules/private/action/require/impl/package.lua index b0fe3399c..848ad4b8f 100644 --- a/xmake/modules/private/action/require/impl/package.lua +++ b/xmake/modules/private/action/require/impl/package.lua @@ -361,7 +361,11 @@ function _select_package_version(package, requireinfo, locked_requireinfo) version, source = try { function () return semver.select(require_version, package:versions()) end } end if not version and has_giturl and not semver.is_valid(require_version) then -- select branch? - version, source = require_version ~= "latest" and require_version or "master", "branch" + if require_version and #require_version == 40 and require_version:match("%w+") then + version, source = require_version, "commit" + else + version, source = require_version ~= "latest" and require_version or "master", "branch" + end end -- local source package? we use a phony version if not version and require_version == "latest" and #package:urls() == 0 then -- cgit v1.3.1