Xmake 版本
3.1.1
操作系统版本和架构
windows 10 22h2
描述问题
在项目根目录执行 xmake repo -u -v 更新本地仓库时,xmake 没有在仓库目录
.xmake\windows\x64\repositories\levimc-repo 内执行 git 命令,而是在用户当前项目
根目录 D:\Project\EconomyBridge 执行了:
git remote get-url origin
git remote set-url origin https://github.com/LiteLDev/xmake-repo.git
git reset --hard
git pull origin -f
导致
- 项目的
origin 被从 git@github.com:IceBlcokMC/EconomyBridge.git
篡改为 https://github.com/LiteLDev/xmake-repo.git
- 项目工作区被
git reset --hard 重置,未提交修改丢失
git pull origin -f 试图把 xmake-repo 拉进用户项目,报
fatal: refusing to merge unrelated histories
期待的结果
正常更新仓库,而不是修改用户仓库的 remote 地址、重置工作区
工程配置
add_rules("mode.debug", "mode.release")
add_repositories("levimc-repo https://github.com/LiteLDev/xmake-repo.git")
add_requires("levilamina 26.40.2", {configs = {target_type = "server"}})
add_requires("levibuildscript")
if not has_config("vs_runtime") then
set_runtimes("MD")
end
target("EconomyBridge") -- Change this to your mod name.
add_rules("@levibuildscript/linkrule")
if is_plat("windows") then
add_defines("NOMINMAX", "UNICODE")
set_exceptions("cxx")
add_cxflags("/utf-8", "/W4", "/w44265", "/w44289", "/w44296", "/w45263", "/w44738", "/w45204")
add_cxflags(
"/EHs",
"-Wno-microsoft-cast",
"-Wno-invalid-offsetof",
"-Wno-c++2b-extensions",
"-Wno-microsoft-include",
"-Wno-overloaded-virtual",
"-Wno-ignored-qualifiers",
"-Wno-missing-field-initializers",
"-Wno-potentially-evaluated-expression",
"-Wno-pragma-system-header-outside-header",
{tools = {"clang_cl"}}
)
set_toolchains("clang-cl")
end
add_packages("levilamina")
set_kind("static")
set_languages("c++20")
set_symbols("debug")
add_headerfiles("src/(econbridge/**.h)")
add_files("src/**.cpp")
add_includedirs("src")
add_defines("LL_PLAT_S")
附加信息和错误日志
PS D:\Project\EconomyBridge> xmake repo -u -v
checking for git ... D:\Program\Git\cmd\git.exe
checking for gzip ... no
checking for 7z ... C:\Program Files\xmake\winenv\bin\7z
updating repositories ..
checking for curl ... C:\Program Files\xmake\winenv\bin\curl
pinging the host(github.com) ... 175 ms
cloning repository(levimc-repo): https://github.com/LiteLDev/xmake-repo.git to D:\Project\EconomyBridge\.xmake\windows\x64\repositories\levimc-repo ..
Cloning into 'D:\Project\EconomyBridge\.xmake\windows\x64\repositories\levimc-repo'...
fatal: unable to access 'https://github.com/LiteLDev/xmake-repo.git/': Recv failure: Connection was reset
error: execv(D:\Program\Git\cmd\git.exe clone https://github.com/LiteLDev/xmake-repo.git -c core.fsmonitor=false -c core.autocrlf=false D:\Project\EconomyBridge\.xmake\windows\x64\repositories\levimc-repo) failed(128), unknown reason
PS D:\Project\EconomyBridge> $env:HTTP_PROXY="http://127.0.0.1:7890"; $env:HTTPS_PROXY="http://127.0.0.1:7890"
PS D:\Project\EconomyBridge> xmake repo -u -v
checking for git ... D:\Program\Git\cmd\git.exe
checking for gzip ... no
checking for 7z ... C:\Program Files\xmake\winenv\bin\7z
updating repositories ..
D:\Program\Git\cmd\git.exe remote get-url origin
updating remote URL for repository(levimc-repo): git@github.com:IceBlcokMC/EconomyBridge.git -> https://github.com/LiteLDev/xmake-repo.git
D:\Program\Git\cmd\git.exe remote set-url origin https://github.com/LiteLDev/xmake-repo.git
pulling repository(levimc-repo): https://github.com/LiteLDev/xmake-repo.git to D:\Project\EconomyBridge\.xmake\windows\x64\repositories\levimc-repo ..
D:\Program\Git\cmd\git.exe -c core.fsmonitor=false reset --hard
HEAD is now at c8e9449 chore: release v0.6.0
D:\Program\Git\cmd\git.exe -c core.fsmonitor=false pull origin -f
remote: Enumerating objects: 4672, done.
remote: Counting objects: 100% (399/399), done.
remote: Compressing objects: 100% (153/153), done.
remote: Total 4672 (delta 206), reused 345 (delta 177), pack-reused 4273 (from 1)
Receiving objects: 100% (4672/4672), 531.28 KiB | 752.00 KiB/s, done.
Resolving deltas: 100% (2073/2073), done.
From https://github.com/LiteLDev/xmake-repo
+ 20f36ba...4da0228 main -> origin/main (forced update)
fatal: refusing to merge unrelated histories
error: execv(D:\Program\Git\cmd\git.exe -c core.fsmonitor=false pull origin -f) failed(128), unknown reason
PS D:\Project\EconomyBridge>
PS D:\Project\EconomyBridge>
PS D:\Project\EconomyBridge>
PS D:\Project\EconomyBridge>
PS D:\Project\EconomyBridge>
PS D:\Project\EconomyBridge> xmake repo -u -v
checking for git ... D:\Program\Git\cmd\git.exe
checking for gzip ... no
checking for 7z ... C:\Program Files\xmake\winenv\bin\7z
updating repositories ..
D:\Program\Git\cmd\git.exe remote get-url origin
pulling repository(levimc-repo): https://github.com/LiteLDev/xmake-repo.git to D:\Project\EconomyBridge\.xmake\windows\x64\repositories\levimc-repo ..
D:\Program\Git\cmd\git.exe -c core.fsmonitor=false reset --hard
HEAD is now at c8e9449 chore: release v0.6.0
D:\Program\Git\cmd\git.exe -c core.fsmonitor=false pull origin -f
fatal: refusing to merge unrelated histories
error: execv(D:\Program\Git\cmd\git.exe -c core.fsmonitor=false pull origin -f) failed(128), unknown reason
PS D:\Project\EconomyBridge>
PS D:\Project\EconomyBridge>
PS D:\Project\EconomyBridge>
PS D:\Project\EconomyBridge>
PS D:\Project\EconomyBridge>
PS D:\Project\EconomyBridge> xmake --version
xmake v3.1.0+HEAD.96ad28edb, A cross-platform build utility based on Lua
Copyright (C) 2015-present Ruki Wang, https://xmake.io
_
__ ___ __ __ __ _| | ______
\ \/ / | \/ |/ _ | |/ / __ \
> < | \__/ | /_| | < ___/
/_/\_\_|_| |_|\__ \|_|\_\____|
by ruki, xmake.io
👉 Manual: https://xmake.io/guide/quick-start
🙏 Donate: https://xmake.io/about/sponsor
==========================================================================
| A new version of xmake is available! |
| |
| To update to the latest version v3.1.1, run "xmake update". |
==========================================================================
PS D:\Project\EconomyBridge> git remote -v
origin https://github.com/LiteLDev/xmake-repo.git (fetch)
origin https://github.com/LiteLDev/xmake-repo.git (push)
PS D:\Project\EconomyBridge>
PS D:\Project\EconomyBridge>
PS D:\Project\EconomyBridge>
PS D:\Project\EconomyBridge> git remote set-url origin git@github.com:IceBlcokMC/EconomyBridge.git
PS D:\Project\EconomyBridge>
PS D:\Project\EconomyBridge> xmake repo -u -v
checking for git ... D:\Program\Git\cmd\git.exe
checking for gzip ... no
checking for 7z ... C:\Program Files\xmake\winenv\bin\7z
updating repositories ..
D:\Program\Git\cmd\git.exe remote get-url origin
updating remote URL for repository(levimc-repo): git@github.com:IceBlcokMC/EconomyBridge.git -> https://github.com/LiteLDev/xmake-repo.git
D:\Program\Git\cmd\git.exe remote set-url origin https://github.com/LiteLDev/xmake-repo.git
pulling repository(levimc-repo): https://github.com/LiteLDev/xmake-repo.git to D:\Project\EconomyBridge\.xmake\windows\x64\repositories\levimc-repo ..
D:\Program\Git\cmd\git.exe -c core.fsmonitor=false reset --hard
HEAD is now at c8e9449 chore: release v0.6.0
D:\Program\Git\cmd\git.exe -c core.fsmonitor=false pull origin -f
fatal: refusing to merge unrelated histories
error: execv(D:\Program\Git\cmd\git.exe -c core.fsmonitor=false pull origin -f) failed(128), unknown reason
PS D:\Project\EconomyBridge>
PS D:\Project\EconomyBridge>
PS D:\Project\EconomyBridge>
PS D:\Project\EconomyBridge>
PS D:\Project\EconomyBridge> remove-Item -Force .\.xmake\
Confirm
The item at D:\Project\EconomyBridge\.xmake\ has children and the Recurse parameter was not specified. If you continue,
all children will be removed with the item. Are you sure you want to continue?
[Y] Yes [A] Yes to All [N] No [L] No to All [S] Suspend [?] Help (default is "Y"): y
PS D:\Project\EconomyBridge>
PS D:\Project\EconomyBridge> xmake repo -u -v
checking for git ... D:\Program\Git\cmd\git.exe
checking for gzip ... no
checking for 7z ... C:\Program Files\xmake\winenv\bin\7z
updating repositories ..
checking for curl ... C:\Program Files\xmake\winenv\bin\curl
pinging the host(github.com) ... 234 ms
cloning repository(levimc-repo): https://github.com/LiteLDev/xmake-repo.git to D:\Project\EconomyBridge\.xmake\windows\x64\repositories\levimc-repo ..
Cloning into 'D:\Project\EconomyBridge\.xmake\windows\x64\repositories\levimc-repo'...
remote: Enumerating objects: 4672, done.
remote: Counting objects: 100% (399/399), done.
remote: Compressing objects: 100% (153/153), done.
remote: Total 4672 (delta 206), reused 345 (delta 177), pack-reused 4273 (from 1)
Receiving objects: 100% (4672/4672), 531.28 KiB | 1.13 MiB/s, done.
Resolving deltas: 100% (2073/2073), done.
D:\Program\Git\cmd\git.exe remote get-url origin
pulling repository(build-artifacts): https://github.com/xmake-mirror/build-artifacts.git to C:\Users\x\AppData\Local\.xmake\repositories\build-artifacts ..
D:\Program\Git\cmd\git.exe -c core.fsmonitor=false reset --hard
HEAD is now at 03c7471c autoupdate argus-v0.3.0 by ci
D:\Program\Git\cmd\git.exe -c core.fsmonitor=false pull origin main -f
From https://github.com/xmake-mirror/build-artifacts
* branch main -> FETCH_HEAD
Already up to date.
D:\Program\Git\cmd\git.exe remote get-url origin
pulling repository(xmake-repo): https://github.com/xmake-io/xmake-repo.git to C:\Users\x\AppData\Local\.xmake\repositories\xmake-repo ..
D:\Program\Git\cmd\git.exe -c core.fsmonitor=false reset --hard
HEAD is now at aa62a7f85 ghostscript: update to 10.08.0 (#10884)
D:\Program\Git\cmd\git.exe -c core.fsmonitor=false pull origin master -f
From https://github.com/xmake-io/xmake-repo
* branch master -> FETCH_HEAD
Already up to date.
ok
PS D:\Project\EconomyBridge>
Xmake 版本
3.1.1
操作系统版本和架构
windows 10 22h2
描述问题
在项目根目录执行
xmake repo -u -v更新本地仓库时,xmake 没有在仓库目录.xmake\windows\x64\repositories\levimc-repo内执行 git 命令,而是在用户当前项目根目录
D:\Project\EconomyBridge执行了:git remote get-url origingit remote set-url origin https://github.com/LiteLDev/xmake-repo.gitgit reset --hardgit pull origin -f导致
origin被从git@github.com:IceBlcokMC/EconomyBridge.git篡改为
https://github.com/LiteLDev/xmake-repo.gitgit reset --hard重置,未提交修改丢失git pull origin -f试图把 xmake-repo 拉进用户项目,报fatal: refusing to merge unrelated histories期待的结果
正常更新仓库,而不是修改用户仓库的 remote 地址、重置工作区
工程配置
附加信息和错误日志