用途:File Tracker 用于把每次文件变更(write、edit、delete、rename)记录到 SQLite 数据库,便于开发调试、审计追踪,以及在没有 git 的情况下构建版本历史。适用于跟踪代码修改、排查哪些文件何时被改动、审查文件操作等场景。
主要能力:提供 file_changes 表,字段包括 id、timestamp、action、file_path、old_content、new_content、file_size、metadata、created_at;对 file_path、timestamp、action 建立索引;支持按文件查询历史、查询最近变更、按模式搜索文件、按操作类型筛选,并可用 sqlite3 命令行导出 JSON。
使用方式:依赖 Python 标准库(sqlite3、datetime、os)或任意支持 SQLite 的语言,无需外部服务。默认数据库路径为 ~/.file_tracker/changes.db。初始化建表后,通过 log_file_change(action, file_path, old_content, new_content, metadata) 记录变更;也可使用 tracked_write、tracked_edit、tracked_delete 等封装函数,或上下文管理器、装饰器模式自动记录。查询示例:sqlite3 ~/.file_tracker/changes.db "SELECT timestamp, action, file_path FROM file_changes ORDER BY timestamp DESC LIMIT 20"。
限制与注意:内容默认截断至 5000 字符以避免数据库膨胀;建议避免存储敏感文件内容;需定期清理旧记录(如删除一年前数据)并执行 VACUUM;若变更缺失,需确认每次操作后都调用了记录函数并检查数据库写入权限。