From 8db99f3c25f137b46444e4e4b12d874d3d2f8978 Mon Sep 17 00:00:00 2001 From: ruki Date: Thu, 11 Jan 2024 00:43:24 +0800 Subject: fix git.branch --- xmake/modules/devel/git/branch.lua | 29 +++++++++++++++++++++++++---- xmake/modules/devel/git/lastcommit.lua | 1 + 2 files changed, 26 insertions(+), 4 deletions(-) diff --git a/xmake/modules/devel/git/branch.lua b/xmake/modules/devel/git/branch.lua index b2a8602cb..08f1f7bf0 100644 --- a/xmake/modules/devel/git/branch.lua +++ b/xmake/modules/devel/git/branch.lua @@ -21,7 +21,7 @@ -- imports import("core.base.option") import("lib.detect.find_tool") -import("branches", {alias = "git_branches"}) +import("net.proxy") -- get current branch -- @@ -38,8 +38,29 @@ import("branches", {alias = "git_branches"}) -- function main(opt) opt = opt or {} - local branches = git_branches(opt.repodir) - if branches and #branches > 0 then - return branches[1] + + -- find git + local git = assert(find_tool("git"), "git not found!") + + -- init arguments + local argv = {"branch", "--show-current"} + + -- trace + if option.get("verbose") then + print("%s %s", git.program, os.args(argv)) + end + + -- use proxy? + local envs + local proxy_conf = proxy.config(url) + if proxy_conf then + envs = {ALL_PROXY = proxy_conf} + end + + -- get current branch + local branch = os.iorunv(git.program, argv, {envs = envs, curdir = opt.repodir}) + if branch then + branch = branch:trim() end + return branch end diff --git a/xmake/modules/devel/git/lastcommit.lua b/xmake/modules/devel/git/lastcommit.lua index 1ad6de1f4..02e5c71f7 100644 --- a/xmake/modules/devel/git/lastcommit.lua +++ b/xmake/modules/devel/git/lastcommit.lua @@ -38,6 +38,7 @@ import("net.proxy") -- @endcode -- function main(opt) + opt = opt or {} -- find git local git = assert(find_tool("git"), "git not found!") -- cgit v1.3.1