# PR #26535 完整报告

- 仓库：`sgl-project/sglang`
- 标题：[AMD] force AITER checkout to bypass CSV CRLF/LF smudge dirty state
- 合并时间：2026-05-28 14:05
- 原文链接：http://prhub.com.cn/sgl-project/sglang/pull/26535

---

# 执行摘要

- 一句话：修复 AMD AITER 检出失败问题
- 推荐动作：值得合并，修复明确、风险低。但建议关注 AITER 上游是否彻底迁移 CSV 到 LF，届时可恢复为普通 checkout 以保留额外安全保护。

# 功能与动机

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

# 实现拆解

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 脚本；类别 infra；类型 infrastructure）: 核心变更文件，修改了 AITER 重建块中的 git checkout 命令，添加了解释注释。

关键符号：未识别

## 关键源码片段

### `scripts/ci/amd/amd_ci_install_dependency.sh`

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

```bash
# 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} && \

```

# 评论区精华

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

- 暂无高价值评论线程

# 风险与影响

- 风险：风险极低。变更仅影响 CI 中的特定 AITER 重建分支路径，且 `checkout -f` 丢弃的仅是由 smudge filter 产生的幻象 dirty 状态，不会丢失真实修改。但若未来 AITER 仓库的 `.gitattributes` 规则被移除或变更，此强制覆盖行为可能掩盖其他真实问题。
- 影响：仅影响 AMD CI 中触发 AITER 重建的作业。修复后，当 `AITER_COMMIT_OVERRIDE` 指向一个早于 `cb84b78a1` 的 commit 时，不会再因假 dirty 状态而失败。对其他平台或非 AITER 路径无影响。
- 风险标记：低风险 , 基础设施变更

# 关联脉络

- PR #26487 feat: convert mm_hashes to str in encode_server for Mooncake key compat: 同属 AMD 相关修复，但技术领域不同。
- PR #26383 [AMD][DSV4] DSV4 MTP graph + sparse triton attn optimizations: 同为 AMD 平台的 CI/ 构建问题修复，但非直接依赖。