2

我在 Mercurial 存储库中添加了几个 -small- 二进制文件。这些文件是我的一种开发工具(报告/表单/类定义)的“源”文件。

我制作了一个程序,将这个二进制文件转储到一个文本文件中,以便在它们之间轻松区分。有什么方法可以告诉 Mercurial 某些文件扩展名需要在运行 diff 程序之前运行此转换?或者我必须将我的转换程序设置为主要差异工具并运行转换 - 或不运行 -然后运行真正的差异程序?

4

2 回答 2

2

您可以(TBT)对纯 Mercurial 使用ExtDiff 扩展。在 TortoiseHG 的情况下

[diff-patterns]
**.ext = difftool

在hgrc玩游戏

于 2011-10-10T01:12:17.530 回答
0

我在 diff 程序之前得到了一小批:

@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
于 2011-10-10T14:22:28.360 回答