我在Mercurial存储库中添加了几个-small-二进制文件。这些文件是我的一个开发工具(报告/表单/类定义)的“源”文件。
我制作了一个程序,将这个二进制文件转储到文本文件中,以便在它们之间轻松区分。有没有办法告诉Mercurial某些文件扩展名需要在运行diff程序之前运行此转换?或者我必须将我的转换程序设置为主要差异工具并运行转换 - 或者 - 并且然后运行真正的差异程序?
答案 0 :(得分:2)
你可以(TBT)使用ExtDiff extension来获得纯粹的Mercurial。在TortoiseHG的情况下
[diff-patterns]
**.ext = difftool
在hgrc中玩游戏
答案 1 :(得分:0)
我最后在diff程序之前使用 small 批处理:
@echo off
set f1=%1
set f2=%2
::Temporary dir created by hg to copy the snapshot file
set tdir=%~dp1
::Original repository dir
set repo=%~dp2
::Filename extension
set ext=%~x1
::The binary files comes in pairs: scx/sct \ vcx/vct ...
set ex2=%ext:~0,-1%t
::Check if "dumpable" extension
echo %ext% | grep -iE "(vcx|vct|scx|sct|pjx|pjt|frx|frt)" > nul && goto DumpFile
goto diff
:DumpFile
set f1="%tdir%\_Dump1.prg"
set f2="%tdir%\_Dump2.prg"
::Get the pair file from the repository
hg cat %repo%\%~n1%ex2% -o "%~dpn1%ex2%" -R %repo%
::Do the dump, then the diff
MyDumpProgram.exe %1 %f1%
MyDumpProgram.exe %2 %f2%
goto diff
:diff
ExamDiff.exe %f1% %f2%
pause
然后在%UserProfile%\。hgrc
中配置批处理[extdiff]
cmd.ediff = d:\Utiles\diff2.bat