TortoiseHG搭配FileMerge启动报错Swift语言规范加载失败致卡顿求助
解决TortoiseHG搭配FileMerge在Sonoma+Xcode15下的Swift语言规范加载报错与卡顿问题
问题原因
报错Couldn't load language spec for '<DVTSourceCodeLanguage:0x600000cbc1b0:'Xcode.SourceCodeLanguage.Swift'>'是由于Xcode 15对Swift语言规范的结构做了调整,TortoiseHG 6.5.1调用FileMerge时的旧逻辑无法适配,导致FileMerge反复尝试加载失败,最终引发界面冻结和运行缓慢。
解决步骤
重置Xcode命令行工具关联
先确保Xcode命令行工具与当前Xcode版本匹配,执行终端命令:sudo xcode-select -r
若无效,手动指定Xcode路径:sudo xcode-select -s /Applications/Xcode.app/Contents/Developer
执行后重启TortoiseHG和FileMerge测试。清除Xcode缓存文件
关闭所有相关工具(Xcode、TortoiseHG、FileMerge),执行终端命令删除缓存:rm -rf ~/Library/Developer/Xcode/DerivedDatarm -rf ~/Library/Caches/com.apple.dt.Xcode
重新打开Xcode等待缓存重建,再测试FileMerge功能。修改TortoiseHG的FileMerge调用参数
强制FileMerge禁用语法解析,避免触发Swift语言加载错误:- 打开TortoiseHG偏好设置 → Diff → External Diff Tool
- 将FileMerge的调用命令修改为:
/Applications/Xcode.app/Contents/Applications/FileMerge.app/Contents/MacOS/opendiff "$local" "$other" -nosyntax
该参数会关闭语法高亮和语言规范加载,直接使用纯文本对比模式。
工具版本适配调整
如果以上方法无效:- 检查TortoiseHG官网是否有适配Sonoma和Xcode15的新版本,更新到最新版尝试
- 暂时降级Xcode到14.x版本,兼容当前TortoiseHG版本的调用逻辑
内容的提问来源于stack exchange,提问作者Igor Jorin
相关产品推荐
相关产品推荐

