公司动态

代码实时上传器(稳定性增强版)

📅 2026/8/3 11:36:17
代码实时上传器(稳定性增强版)
定时扫描项目目录自动清理编译中间产物并同步到GitHub 仓库。功能定时扫描每12 小时可配置扫描一次指定目录磁盘清理自动删除编译中间产物.obj/.lst/.m51/.lnp/.htm 等保留源码和工程文件版本库清理移除被.gitignore 忽略但仍被git 跟踪的文件自动同步git add → commit → push有变更才提交仓库重命名自动识别当 GitHub 仓库被重命名时自动通过 API 检测 301 重定向并更新 remote URLGit 路径自动检测不依赖 PATH 环境变量自动搜索常见安装路径和注册表网络检查push 前检测网络连通性避免无意义的重试单实例锁防止多个实例同时运行造成冲突状态持久化记录同步历史、失败次数、remote URL 变更记录配置校验启动时验证所有配置项无效项自动回退到默认值开机自启通过VBS 脚本无窗口后台运行零依赖纯Python 标准库实现文件说明文档 作用autosync.py 主程序定时扫描 磁盘清理 git 同步增强版config.json 配置文件扫描目录、间隔、清理规则、增强选项start.vbs 无窗口后台启动器快速开始1. 前置条件Python 3.8Git 已安装程序会自动检测路径无需手动配置PATH目标目录已初始化为git 仓库并配置了remote originGitHub 凭据已存储 git config --global credential.helper store 2. 配置编辑config.json 将watch_dir改为你的项目目录路径{watch_dir: C:\\Users\\YourName\\YourProject,interval_hours: 12}3. 启动# 前台运行调试用python autosync.py# 后台无窗口运行日常用wscript start.vbs4. 开机自启将start.vbs复制到启动目录Copy-Item start.vbs $env:APPDATA\Microsoft\Windows\Start Menu\Programs\Startup\配置项详解字段 类型 默认值 说明watch_dir 细绳 - 监听的项目目录必须是git 仓库interval_hours 整数 12 扫描间隔小时push_retry 整数 3 push 失败重试次数push_retry_delay 整数 5 重试间隔秒递增log_dir 细绳 logs 日志目录github_user 细绳 GitHub 用户名可选用于仓库重命名检测auto_update_remote 布尔值 true 仓库重命名后自动更新remote URLnetwork_check 布尔值 true push 前检查网络连通性network_timeout 整数 10 网络检查超时秒clean_extensions 大批 - 要删除的文件扩展名clean_filenames 大批 - 要删除的文件名clean_dirs 大批 - 要清空内容的目录名保留目录本身remove_dirs 大批 - 要整体删除的目录名keep_extensions 大批 - 保留不清理的扩展名优先级最高仓库重命名自动识别当你在 GitHub 上重命名仓库后传统的同步脚本会因为 remote URL 失效而持续推送失败。本程序的增强功能自动检测当push 失败且错误信息包含404/not found/denied 等关键词时自动触发GitHub API 检查API 查询通过https://api.github.com/repos/{owner}/{repo}查询仓库状态301 重定向处理GitHub 在仓库重命名后会返回 301响应中包含新仓库地址自动更新检测到新URL 后自动执行git remote set-url origin 新URL并重试push历史记录所有remote URL 变更记录保存在logs/autosync_state.json中状态文件程序运行时会生成logs/autosync_state.json 记录上次同步时间和结果连续失败次数总同步次数和成功/失败统计remote URL 变更历史日志日志文件按日期命名 logs/autosync_YYYYMMDD.log控制操作 命令停止 taskkill /F /IM pythonw.exe手动启动 双击start.vbs查看日志 logs/autosync_YYYYMMDD.log查看状态 logs/autosync_state.json取消开机自启 删除启动目录中的start.vbs技术要点Git 路径检测依次搜索 PATH → 常见安装路径 → 注册表确保在任何安装方式下都能找到 git.exe仓库重命名检测利用 GitHub API 的 301 重定向机制无需额外认证即可检测公开仓库的重命名单实例锁使用msvcrt.locking Windows 文件锁 PID 存活检测双重保障文件删除Windows 环境下Python 的文件删除被safe-delete shim 拦截改用Win32 API DeleteFileW cmd /c rmdir /s /q绕过网络检查通过 TCP 连接 github.com:443 检测网络连通性避免 DNS-only 检查的误判重试递增延迟push 重试间隔随次数递增第1次 5s第2次 10s第3次 15s提高网络恢复后的成功率网址https://github.com/Bogod-hub/Bo-codespace/tree/code-autosync