diff --git a/zhenxun/builtin_plugins/auto_update/_data_source.py b/zhenxun/builtin_plugins/auto_update/_data_source.py index 86ea3e7e..df0770e9 100644 --- a/zhenxun/builtin_plugins/auto_update/_data_source.py +++ b/zhenxun/builtin_plugins/auto_update/_data_source.py @@ -1,4 +1,5 @@ import os +from pathlib import Path import shutil import tarfile import zipfile @@ -245,14 +246,14 @@ class UpdateManager: elif source == "git": result = await GithubRepoManager.update( GIT_GITHUB_URL, - BASE_PATH, + Path(), use_git=update_type == "git", force=force, ) else: result = await AliyunRepoManager.update( GIT_GITHUB_URL, - BASE_PATH, + Path(), force=force, ) if not result.success: diff --git a/zhenxun/utils/repo_utils/base_manager.py b/zhenxun/utils/repo_utils/base_manager.py index 00100399..c096f222 100644 --- a/zhenxun/utils/repo_utils/base_manager.py +++ b/zhenxun/utils/repo_utils/base_manager.py @@ -376,7 +376,7 @@ class BaseRepoManager(ABC): logger.info("拉取最新代码", LOG_COMMAND) pull_cmd = f"pull origin {branch}" if force: - pull_cmd = f"pull --force origin {branch}" + pull_cmd = f"fetch --all && git reset --hard origin/{branch}" logger.info("使用强制拉取模式", LOG_COMMAND) success, _, stderr = await run_git_command(pull_cmd, cwd=local_path) if not success: diff --git a/zhenxun/utils/repo_utils/file_manager.py b/zhenxun/utils/repo_utils/file_manager.py index 263c296d..67c82192 100644 --- a/zhenxun/utils/repo_utils/file_manager.py +++ b/zhenxun/utils/repo_utils/file_manager.py @@ -154,7 +154,7 @@ class RepoFileManager: ) results.append((f, content)) except Exception as e: - logger.error(f"获取阿里云文件内容失败: {file_path}", LOG_COMMAND, e=e) + logger.warning(f"获取阿里云文件内容失败: {file_path}", LOG_COMMAND, e=e) if not ignore_error: raise logger.debug(f"获取阿里云文件内容: {[r[0] for r in results]}", LOG_COMMAND)