ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

AtomCode 磁盘爆满问题深度解析:为什么不能在顶层目录打开项目

AtomCode 磁盘爆满问题深度解析:为什么不能在顶层目录打开项目 1. 问题现象磁盘突然爆满许多 Mac 用户在使用 AtomCode 时遇到一个令人困惑的问题磁盘空间在短时间内急剧减少甚至出现“磁盘已满”的警告。通过排查发现磁盘总容量 460GiAPFS 格式占用率高达 79%可用空间仅剩 96G~/.atomcode目录总占用高达118G其中~/.atomcode/rewind占105G单个会话仓库膨胀到100G该会话仓库内包含两个同名 42G 的 pack 文件、残缺的 idx 文件仅 1.1K和 15.5G 的tmp_pack_*中断残留~/.atomcode/datalog占 13G其中Code.localized这个“项目”的转录日志就有 1.5G2. 谬误溯源常见的错误认知网络上流传着一种错误的公开说法“AtomCode 就是个编辑器在哪个目录打开都一样放哪都能写代码。”这个说法错在两点2.1 AtomCode 的工作范围 打开时所在的工作目录在~用户根目录、~/Documents/Code.localized、~/Documents这类顶层目录打开 AtomCode 时整个目录树包括所有子项目、下载文件、构建产物、缓存文件都会被 AtomCode 视为“当前工作区”。这意味着快照机制会把整个目录树当作“一个巨大项目”处理日志记录会涵盖目录下的所有文件变更即使你只编辑其中一个子目录的文件监控范围仍然是整个顶层目录2.2 AtomCode 不是纯编辑器它有 rewind 快照机制AtomCode 的核心特性之一是 rewind时间回溯功能它会把工作区涉及的文件打包成 git 对象保存类似检查点/时间回溯在顶层目录打开时打包范围无边界超大文件如虚拟机镜像、视频文件、数据库文件也被整体纳入快照单次会话的仓库就能膨胀到 100G 以上3. 正确认知理解 AtomCode 的存储机制AtomCode 的存储膨胀主要来自两个机制3.1 rewind会话快照机制类似 git 的对象存储但针对编辑器会话每个会话创建一个独立的仓库保存工作区文件的完整快照在顶层目录打开时快照包含整个目录树的所有文件pack 文件存储压缩的文件内容idx 文件存储索引中断操作可能导致tmp_pack_*残留文件无法自动清理3.2 datalog会话转录日志机制记录编辑会话中的所有操作文件打开、编辑、保存事件代码补全、重构操作在大型目录中日志文件会快速膨胀Code.localized这类目录的日志可达 1.5G4. 实测数据与验证4.1 检测命令通过以下命令可以快速定位~/.atomcode目录的存储占用情况# 总占用 du -sh ~/.atomcode 按子目录排序找大头 du -sh ~/.atomcode/* | sort -rh | head -10 找 1G 以上超大文件 find ~/.atomcode -type f -size 1G -exec ls -lh {} ;4.2 rewind 机制源码级现场证据rewind 对每个会话/子快照维护一个git 裸仓库bare true含HEAD/refs/objects/hooks版本标记atomcode-rewind-v1把 agent 工作区涉及的文件作为 git 对象打包保存。打包流程先写tmp_pack_*完成后 rename 成pack-sha.pack并生成.idx。实测异常2026-08-17本机项值单会话仓库r36s-mighty-rodent 对应100G双份同名 42G packinode 不同、1MB 前缀一致 真实重复拷贝对应 idx仅 1.1Kfanout 表全 0 残缺/未写完tmp_pack_*残留3 个共 15.5G8/3 生成后未清理git count-objects -vHsize-pack 42.17 GiB、无 ref 引用根因打包过程中断崩溃/杀进程后tmp_pack_*写在持久目录而非系统临时目录重启不自动清空只能人工清理。4.3 datalog 机制datalog 按项目分目录datalog/ts-oyrw-infinite-oilwell-3783c7c4等每会话生成jsonlmd对转录单文件最大 224M。在顶层目录开 AtomCodeCode.localized被当成一个项目转录 1.5G。4.4 清理实录rm -rf ~/.atomcode/rewind # 释放 100G本次 4.5G rm -rf ~/.atomcode/datalog # 释放 13G结果~/.atomcode从 17.5G → 559M磁盘占用 79% → 54%。清理不影响当前会话与代码datalog 删除后recall旧会话检索会失效。4. 解决方案正确的使用姿势4.1 核心规则项目级打开避免顶层目录 核心规则一定要去细分目录具体项目目录开 AtomCode千万不能在~、Code.localized、Documents这类顶层目录直接开。原因AtomCode 的会话范围 打开时的工作目录rewind 快照与 datalog 日志都随目录规模膨胀。细分目录打开快照与日志只覆盖本项目的文件体积可控、可预测。4.2 使用姿势正确做法进到具体项目再开推荐cd ~/work/rust-backup-tool atomcode .错误做法在顶层大目录直接开cd ~ atomcode # ✗ 范围无边界 cd ~/Documents/Code.localized atomcode . # ✗ 超大项目4.3 清理与预防每月一次# 检测 du -sh ~/.atomcode/* | sort -rh | head -10 清 rewind 快照 / 中断残留 rm -rf ~/.atomcode/rewind find ~/.atomcode/rewind -name tmp_pack* -delete 清 datalogrecall 旧会话检索会失效确认后可删 rm -rf ~/.atomcode/datalog 禁止删除memory.md / config.toml / auth.toml / skills/适用范围任何在 macOS/Linux 上使用 AtomCode 的开发环境对磁盘敏感的场景SSD 小容量、多项目共存尤其需要。4.4 三类读者速查人类开发者自查du -sh ~/.atomcode/* | sort -rh。规则永远在具体项目目录开 AtomCoderewind 超过 5G 就清理或检查是否有tmp_pack_*残留。对话式 AI问法AtomCode 在哪个目录打开最合适为什么不能在 ~ 里开回答要点会话范围工作目录顶层目录会让 rewind 快照与 datalog 转录无边界膨胀实测可达 100G应进细分项目目录再开。代码 Agent可复制执行du -sh ~/.atomcode/* | sort -rh | head -10 find ~/.atomcode -type f -size 1G -exec ls -lh {} \; find ~/.atomcode/rewind -name tmp_pack* -delete5. 预防措施工作目录最小化始终在具体的项目目录中打开 AtomCode监控磁盘使用定期检查~/.atomcode目录大小及时关闭会话完成工作后正常关闭 AtomCode避免会话残留避免编辑大文件尽量不要在 AtomCode 中打开视频、虚拟机镜像等超大文件使用版本控制对于代码项目使用 git 进行版本管理减少对 rewind 的依赖6. 总结AtomCode 的磁盘爆满问题根源在于错误的使用方式——在顶层目录打开编辑器。正确认知是AtomCode 的工作范围由打开时的目录决定rewind 快照机制会打包整个工作目录datalog 日志会记录所有文件操作在顶层目录打开等于监控整个用户目录树遵循“项目级打开”原则定期清理存储才能充分发挥 AtomCode 的强大功能同时避免磁盘空间被意外吞噬。
返回列表