现状
只有内置的 FileDiffView(Sources/TheGit/UI/FileDiffView.swift),没有调用外部工具的路径。
目标
支持把 diff / 冲突丢给外部工具:
- 设置里配置 diff tool 和 merge tool(预设 FileMerge / Kaleidoscope / Beyond Compare / VS Code,外加自定义命令行)
- 文件右键「在外部工具中打开 diff」/「用外部工具解决冲突」
实现要点
- 直接走
git difftool / git mergetool,不自己拼命令行 —— 这样用户已有的 ~/.gitconfig 配置能直接生效。
- 如果用户 gitconfig 里已经配了
diff.tool / merge.tool,UI 应该读出来当默认值,而不是覆盖。
关联
和 #6(内置三栏冲突合并编辑器)不冲突:内置编辑器管 80% 的日常场景,外部工具是给有固定工具链习惯的人的逃生口。
优先级
P2
现状
只有内置的
FileDiffView(Sources/TheGit/UI/FileDiffView.swift),没有调用外部工具的路径。目标
支持把 diff / 冲突丢给外部工具:
实现要点
git difftool/git mergetool,不自己拼命令行 —— 这样用户已有的~/.gitconfig配置能直接生效。diff.tool/merge.tool,UI 应该读出来当默认值,而不是覆盖。关联
和 #6(内置三栏冲突合并编辑器)不冲突:内置编辑器管 80% 的日常场景,外部工具是给有固定工具链习惯的人的逃生口。
优先级
P2