You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Mercurial配置Beyond Compare:目录对比右侧设为实际工作目录方法

解决Mercurial目录对比时Beyond Compare右侧使用实际工作目录的问题

方案一:使用Mercurial官方--working-copy选项(推荐)

直接修改mercurial.ini,通过别名让hg bc默认启用工作目录对比模式:

  1. 保留原有extdiff扩展配置,新增alias节:
[extensions]
extdiff =

[extdiff]
cmd.bc = C:\Program Files\Beyond Compare 4\BCompare.exe
opts.bc = /lro /solo

[alias]
bc = extdiff --working-copy -p bc
  1. 保存配置后执行hg bc:
  • 目录对比时,Beyond Compare左侧显示父变更集导出的临时目录,右侧直接指向你的实际工作目录;
  • 单个文件对比(hg bc file1.txt)的行为保持不变,右侧仍为工作目录中的实际文件。

原理说明

--working-copy是Mercurial extdiff扩展的内置选项,它会让Mercurial在目录对比时跳过工作目录的临时副本生成,直接用当前工作目录作为对比右侧。


方案二:使用批处理脚本适配(备选)

如果需要更灵活的自定义逻辑,可以编写批处理脚本作为中间层:

  1. 创建bc-wrapper.bat脚本(比如放在C:\Tools目录下):
@echo off
REM 判断是否为目录对比:Mercurial目录对比会传递两个无扩展名的临时路径
if "%~x2"=="" if "%~x3"=="" (
    REM 目录对比:右侧替换为当前工作目录
    "C:\Program Files\Beyond Compare 4\BCompare.exe" /lro /solo "%~1" "%CD%"
) else (
    REM 文件对比:直接传递所有参数
    "C:\Program Files\Beyond Compare 4\BCompare.exe" /lro /solo %*
)
  1. 修改mercurial.ini的extdiff配置,指向该脚本:
[extensions]
extdiff =

[extdiff]
cmd.bc = C:\Tools\bc-wrapper.bat
opts.bc =
  1. 保存后执行hg bc即可实现需求,文件对比行为不受影响。

内容的提问来源于stack exchange,提问作者Ian Anderson

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.28 03:48:35