fix: 简化远程 .version 获取方式,去除 OneDev 不支持的 sparse filter
This commit is contained in:
+4
-10
@@ -129,6 +129,7 @@ export function getRemoteVersionFile(): VersionFile | null {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 通过浅克隆获取远程 .version 文件(备选方案)
|
* 通过浅克隆获取远程 .version 文件(备选方案)
|
||||||
|
* OneDev 不支持 git archive --remote,改用完整浅克隆
|
||||||
*/
|
*/
|
||||||
function getRemoteVersionByClone(): VersionFile | null {
|
function getRemoteVersionByClone(): VersionFile | null {
|
||||||
const tmpDir = path.join(
|
const tmpDir = path.join(
|
||||||
@@ -137,18 +138,11 @@ function getRemoteVersionByClone(): VersionFile | null {
|
|||||||
);
|
);
|
||||||
try {
|
try {
|
||||||
const url = getAuthenticatedRemoteUrl();
|
const url = getAuthenticatedRemoteUrl();
|
||||||
execSync(
|
execSync(`git clone --depth 1 "${url}" "${tmpDir}"`, {
|
||||||
`git clone --depth 1 --filter=blob:none --sparse "${url}" "${tmpDir}" 2>nul`,
|
|
||||||
{
|
|
||||||
encoding: "utf-8",
|
encoding: "utf-8",
|
||||||
timeout: 30000,
|
timeout: 60000,
|
||||||
windowsHide: true,
|
|
||||||
}
|
|
||||||
);
|
|
||||||
execSync(`cd "${tmpDir}" && git sparse-checkout set .version 2>nul`, {
|
|
||||||
encoding: "utf-8",
|
|
||||||
timeout: 10000,
|
|
||||||
windowsHide: true,
|
windowsHide: true,
|
||||||
|
stdio: ["ignore", "pipe", "pipe"],
|
||||||
});
|
});
|
||||||
const versionPath = path.join(tmpDir, ".version");
|
const versionPath = path.join(tmpDir, ".version");
|
||||||
if (fs.existsSync(versionPath)) {
|
if (fs.existsSync(versionPath)) {
|
||||||
|
|||||||
Reference in New Issue
Block a user