Prhub

#26535 [AMD] force AITER checkout to bypass CSV CRLF/LF smudge dirty state

原始 PR 作者 yctseng0211 合并时间 2026-05-28 14:05 文件变更 1 提交数 2 评论 2 代码增减 +6 / -1

执行摘要

修复 AMD AITER 检出失败问题

AMD AITER scout job 在 Install dependencies 步骤中因 git checkout 检测到本地修改(实际是克隆后 smudge filter 造成的 CRLF/LF 幻象差异)而失败。作者在 PR body 中详细分析了根本原因,并引用外部仓库 ROCm/aiter#3370 作为根因。

值得合并,修复明确、风险低。但建议关注 AITER 上游是否彻底迁移 CSV 到 LF,届时可恢复为普通 checkout 以保留额外安全保护。

讨论亮点

无。该 PR 没有 review 评论或争议,直接被合并者批准。

实现拆解

  1. 修改检出命令:在 scripts/ci/amd/amd_ci_install_dependency.sh 中将 git checkout 替换为 git checkout -f
  2. 添加解释注释:新增多行注释说明为什么需要强制检出,以及为什么丢弃所谓“本地修改”是安全的。
  3. 无其他文件变更:仅单文件 6 行新增、1 行删除。
文件 模块 状态 重要度
scripts/ci/amd/amd_ci_install_dependency.sh CI 脚本 modified 3.13

关键源码片段

scripts/ci/amd/amd_ci_install_dependency.sh infrastructure

核心变更文件,修改了 AITER 重建块中的 git checkout 命令,添加了解释注释。

# Use `checkout -f` so the smudge-filter-induced "dirty" working tree from
# AITER's .gitattributes (*.csv text eol=lf, added in ROCm/aiter#3370) does
# not block switching to commits that predate that rule. The working tree
# was just produced by `rm -rf` + fresh `git clone` above, so there are no
# real user changes to preserve.
git checkout -f ${REPO_AITER_COMMIT} && \

评论区精华

没有提炼出高价值讨论线程

当前评论区没有形成足够清晰的争议点或结论,后续有更多讨论时会体现在这里。

风险与影响

风险极低。变更仅影响 CI 中的特定 AITER 重建分支路径,且 checkout -f 丢弃的仅是由 smudge filter 产生的幻象 dirty 状态,不会丢失真实修改。但若未来 AITER 仓库的 .gitattributes 规则被移除或变更,此强制覆盖行为可能掩盖其他真实问题。

仅影响 AMD CI 中触发 AITER 重建的作业。修复后,当 AITER_COMMIT_OVERRIDE 指向一个早于 cb84b78a1 的 commit 时,不会再因假 dirty 状态而失败。对其他平台或非 AITER 路径无影响。

低风险 基础设施变更

关联 Issue

#3370 Normalize CSV line endings for cleaner diffs

完整报告

参与讨论