32 lines
1.2 KiB
Markdown
32 lines
1.2 KiB
Markdown
# 2026-06-02 Windows/Ubuntu 字符与换行审计
|
||
|
||
## 日期
|
||
2026-06-02
|
||
|
||
## 变更摘要
|
||
完成 Windows 开发机 ↔ Ubuntu 生产部署的字符/换行/路径审计;修复工作区内 14 个 CRLF `.sh`;新增部署前 LF 门控。
|
||
|
||
## 动机
|
||
项目在 Windows 上开发、部署到 Ubuntu。CRLF 脚本会导致 `\r: command not found`;反斜杠路径与错误编码会破坏 SSH/文件 API。需可重复检查,避免再次泄漏 CRLF。
|
||
|
||
## 涉及文件
|
||
- `docs/audit/2026-06-02-windows-ubuntu-encoding-audit.md` — 审计报告(Closure + DoD)
|
||
- `deploy/check_shell_eol.sh` — 检查 git 跟踪的 `*.sh` 是否含 CR
|
||
- `deploy/pre_deploy_check.sh` — Pre-flight 调用 EOL 检查
|
||
- 14 个 `deploy/*.sh`、`scripts/wsl_*.sh`、`web/agent/agent.sh` — CRLF→LF
|
||
|
||
## 迁移 / 重启
|
||
- 无数据库迁移
|
||
- 仅当服务器上的脚本曾被 Windows 直接编辑并带 CRLF 时,需在服务器 `git pull` 后无需额外步骤(随仓库更新)
|
||
|
||
## 验证方式
|
||
```bash
|
||
bash deploy/check_shell_eol.sh
|
||
# 预期: check_shell_eol: OK
|
||
|
||
bash deploy/pre_deploy_check.sh
|
||
# Pre-flight: Shell EOL (LF) ... PASS
|
||
```
|
||
|
||
开发机建议:`git config core.autocrlf false`
|