如何让被SVN忽略的文件取消忽略状态并可正常检入?
问题成因
SVN 1.14.1默认全局忽略规则包含*.a静态库文件后缀,执行import操作时会自动跳过匹配忽略规则的文件,导致这类文件不会被纳入版本控制。
操作步骤
未完成首次导入的处理方式
- 打开用户级SVN配置文件:执行命令
nano ~/.subversion/config - 定位到
[miscellany]段落下的global-ignores配置行,删除配置值中的*.a字段,其余需要保留的忽略规则不要改动,按Ctrl+O保存、Ctrl+X退出编辑器。 - 进入待导入的项目根目录,执行
svn status验证规则:所有.a文件如果不再显示I(忽略)标记,说明配置生效。 - 正常执行
svn import命令即可将所有.a文件随项目一同导入版本库。
已完成导入、缺失.a文件的处理方式
- 先按上述步骤修改
~/.subversion/config中的全局忽略规则,移除*.a配置。 - 新建临时目录拉取版本库最新工作副本:
svn checkout <你的版本库访问地址> ./svn_wc_temp - 将本地原始项目中所有
.a文件按原有目录结构,完整复制到svn_wc_temp工作副本的对应路径下。 - 进入
svn_wc_temp目录,执行命令批量添加所有.a文件:find . -name "*.a" | xargs svn add - 执行
svn status核对待提交的文件列表,确认没有无关文件后,执行svn commit -m "补充纳入静态库.a文件"提交即可。
可选配置(不修改全局规则)
如果不想改动全局SVN配置影响其他项目,可以仅对当前仓库放开.a文件的忽略限制:
- 拉取工作副本后,在根目录执行
svn propedit svn:global-ignores . - 在弹出的编辑窗口中,确认不存在
*.a规则,保存退出后提交属性变更,后续该仓库就不会自动忽略.a文件。
操作提示:批量添加文件前务必通过
svn status核对文件清单,避免将编译生成的临时文件、无关缓存文件误加入版本库。
内容的提问来源于stack exchange,提问作者Xiong Mar
相关产品推荐
相关产品推荐

