问题 - 索引中该目录记为小写 `scripts/`,工作区实为 `Scripts/`。因 core.ignorecase=true, 本地 `git diff -- Scripts/bin/x.py` 会**静默返回空**(看似无改动), 且在大小写敏感环境(Linux CI / Docker 挂载)会检出 `scripts/`, 与全仓所有 `Scripts/...` 引用不匹配。 - 该目录此前 10 个脚本(check_python_version.py、perf_snapshot.py、 install_collector_launchd.py、mysql_toggle.sh 等)从未入库, 而 CI 第 31 行正调用 `Scripts/bin/check_python_version.py --strict` —— 全新检出必然失败。 改动 - 索引路径统一为 `Scripts/`(工作区文件未移动,仅索引改名)。 - 补齐上述 10 个未跟踪脚本及其测试。 影响 - 修正前索引 35 条(全为小写路径),修正后 45 条。
58 lines
1.2 KiB
Bash
Executable File
58 lines
1.2 KiB
Bash
Executable File
#!/bin/bash
|
|
set -e
|
|
|
|
VERSION_FILE="$(cd "$(dirname "$0")"/.. && pwd)/VERSION"
|
|
|
|
usage() {
|
|
echo "用法: $0 <major|minor|patch> [自定义版本号]"
|
|
echo ""
|
|
echo "示例:"
|
|
echo " $0 patch # 1.2.0 -> 1.2.1"
|
|
echo " $0 minor # 1.2.0 -> 1.3.0"
|
|
echo " $0 major # 1.2.0 -> 2.0.0"
|
|
echo " $0 custom 2.0.0 # 设置为 2.0.0"
|
|
exit 1
|
|
}
|
|
|
|
current_version=$(cat "$VERSION_FILE" | tr -d '[:space:]')
|
|
|
|
if [ -z "$1" ]; then
|
|
echo "当前版本: $current_version"
|
|
usage
|
|
fi
|
|
|
|
IFS='.' read -r major minor patch <<< "$current_version"
|
|
|
|
case "$1" in
|
|
major)
|
|
major=$((major + 1))
|
|
minor=0
|
|
patch=0
|
|
;;
|
|
minor)
|
|
minor=$((minor + 1))
|
|
patch=0
|
|
;;
|
|
patch)
|
|
patch=$((patch + 1))
|
|
;;
|
|
custom)
|
|
if [ -z "$2" ]; then
|
|
echo "请指定自定义版本号"
|
|
exit 1
|
|
fi
|
|
new_version="$2"
|
|
;;
|
|
*)
|
|
echo "未知选项: $1"
|
|
usage
|
|
;;
|
|
esac
|
|
|
|
if [ -z "$new_version" ]; then
|
|
new_version="${major}.${minor}.${patch}"
|
|
fi
|
|
|
|
echo "$new_version" > "$VERSION_FILE"
|
|
echo "版本号已更新: ${current_version} -> ${new_version}"
|