问题
--submodule 在入口校验处拒绝一切非目录路径:
# main.py:_normalize_submodules
if not os.path.isdir(candidate):
raise ValueError(f"--submodule path is not a directory: {raw}")
而下游过滤逻辑 src/file_utils.py:_is_under_submodules 本身就是前缀匹配:
return any(norm == sub or norm.startswith(sub + "/") for sub in submodules)
norm == sub 天然兼容文件路径——目录限制只存在于入口校验,放宽几乎不需要动下游。
场景
Redis 这类扁平结构 C 项目:src/ 下 126 个 .c 文件平铺(共 ~19w 行),没有子目录可圈。想只跑 zset(t_zset.c)或 string bitops(bitops.c + t_string.c 等几个文件)范围的抽取/验证,只能整圈 src/,成本和噪声都下不来。
建议
允许 --submodule 接受项目内的文件路径(相对或绝对),语义 = 精确文件集合 ∪ 目录前缀集合;校验逻辑改为「目录或已存在源文件均可」。同时同步 README.md / README_zh.md 中「路径必须是 proj_dir 内部目录」的描述。
问题
--submodule在入口校验处拒绝一切非目录路径:而下游过滤逻辑
src/file_utils.py:_is_under_submodules本身就是前缀匹配:norm == sub天然兼容文件路径——目录限制只存在于入口校验,放宽几乎不需要动下游。场景
Redis 这类扁平结构 C 项目:
src/下 126 个.c文件平铺(共 ~19w 行),没有子目录可圈。想只跑 zset(t_zset.c)或 string bitops(bitops.c+t_string.c等几个文件)范围的抽取/验证,只能整圈src/,成本和噪声都下不来。建议
允许
--submodule接受项目内的文件路径(相对或绝对),语义 = 精确文件集合 ∪ 目录前缀集合;校验逻辑改为「目录或已存在源文件均可」。同时同步 README.md / README_zh.md 中「路径必须是proj_dir内部目录」的描述。