SmartSVN设置全局忽略.o、.obj等文件后仍被版本管控如何解决
问题原因
全局忽略规则仅对未被纳入SVN版本管控的新文件生效,如果你设置规则前,.o/.obj/.d这类文件已经被提交过、处于版本库的追踪状态,后续添加的忽略规则不会对这类已追踪文件生效。
另外还有两个常见配置错误:
- 仅配置了全局忽略规则,但当前项目单独设置了项目级忽略规则,优先级更高的项目规则覆盖了全局配置
- 忽略规则书写时多打了空格、特殊字符,导致匹配失效
解决步骤
1. 移除已被追踪的目标文件
要让忽略规则对已经被管控的文件生效,首先需要把这些文件从版本追踪列表中移除,保留本地的实际文件:
- 单文件/小批量操作:在SmartSVN文件列表中选中目标文件,右键选择
Unversion and Add to Ignore,如果是匹配同后缀文件,直接选择对应后缀的规则选项即可 - 大批量操作:可以调用SVN命令行执行批量移除命令:
svn rm --keep-local *.o *.obj *.d
操作完成后提交一次变更,将移除追踪的操作同步到远端版本库。
2. 确认忽略规则优先级
- 打开
Project -> Settings -> Project Ignores,确认当前项目没有配置和全局规则冲突的忽略内容 - 打开
Project -> Default Settings -> Global Ignores,确认「使用以下模式」已勾选,你添加的*.o/*.obj/*.d规则都在列表内,没有格式错误
3. 验证规则
配置完成后可以新建一个.o后缀的测试文件,刷新SmartSVN文件列表,正常情况下该文件会显示为灰色忽略状态,不会被标记为待提交的新增文件。如果规则未生效,可以重启一次SmartSVN清除配置缓存后再验证。
内容的提问来源于stack exchange,提问作者nuta_nu_
相关产品推荐
相关产品推荐

