diff options
| author | ruki <[email protected]> | 2022-04-14 00:37:13 +0800 |
|---|---|---|
| committer | ruki <[email protected]> | 2022-04-14 00:37:13 +0800 |
| commit | 12652bfd524697241b893d4a4e1672ecc3608f2c (patch) | |
| tree | 6b0aa0ba694723e1bb99b39830a7c8969c71f2a1 /xmake/modules | |
| parent | a39818c953e11781d2305e2ad3afe5b551c15eec (diff) | |
support git commit as require version
Diffstat (limited to 'xmake/modules')
| -rw-r--r-- | xmake/modules/private/action/require/impl/actions/download.lua | 2 | ||||
| -rw-r--r-- | xmake/modules/private/action/require/impl/package.lua | 6 |
2 files changed, 6 insertions, 2 deletions
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 |
