我正在尝试让meta-diff套件中的lvdiff与Git一起工作。
我的.gitconfig看起来像这样:
[gui]
    recentrepo = C:/Users/Tanner/Desktop/FIRST 2010 Beta/Java/LoganRover
[user]
    name = Tanner Smith
    email = tanner@notimportant.net
[merge "labview"]
    name = LabVIEW 3-Way Merge
    driver = 'C:/Program Files/National Instruments/Shared/LabVIEW Merge/LVMerge.exe' 'C:/Program Files/National Instruments/LabVIEW 8.6/LabVIEW.exe' %O %B %A %A
    recursive = binary
[diff "lvdiff"]
    #command = 'C:/Program Files/meta-diff suite/lvdiff.exe'
    external = C:/Users/Tanner/Desktop/FIRST 2010 Beta/lvdiff.sh
[core]
    autocrlf = truelvdiff.sh看起来像这样:
#!/bin/sh
"C:/Program Files/meta-diff suite/lvdiff.exe" "$2" "%5" | cat我的.gitattributes文件看起来像这样:
#Use a cusstom driver to merge LabVIEW files
*.vi merge=labview
#Use lvdiff as the externel diff program for LabVIEW files
*.vi diff=lvdiff但每次我做diff时,Git返回的结果都是:
diff --git a/Build DashBoard Data.vi b/Build DashBoard Data.vi
index fd50547..662237f 100644
Binary files a/Build DashBoard Data.vi and b/Build DeashBoard Data.vi differ这就像它没有使用它,甚至没有意识到我的更改。有什么想法吗?
发布于 2010-01-03 05:17:26
我没有LabView,但您的配置中有一些地方是错误的。
”。
lvdiff.sh中的“%”可能应为“$”。在我的机器上(不是Windows,没有LabView),使用diff.lvdiff.command和你的.gitattributes就足以让git diff foo.vi运行外部的diff驱动程序(我甚至使用了路径名中有空格的diff驱动程序)。diff.lvdiff下的错误配置是您看到“二进制文件”消息的原因,它是显示为二进制文件的文件的默认差异消息。您可能已经想到了diff.external,它与diff.foo.command相关,但它适用于所有的文本差异,而不仅仅是具有diff=foo属性的路径子集。
发布于 2010-01-03 15:50:17
您的LVDiff的路径中有一个空格,但是您没有在引号中包含路径(就像您对LabVIEW合并所做的那样)。
LVDiff不允许重复的文件名,也许它会将远程文件复制到您的系统中,但不会重命名该文件。尝试编辑lvdiff.vi以重命名这两个文件中的一个(我建议重命名第二个文件。
请参阅一些说明here
发布于 2010-01-03 04:19:11
这取决于用LabVIEW编写的virtual instrument (VI)文件的大小和性质
二进制文件大小:即使这些文件是文本文件,但太小,它们在默认情况下也会被视为二进制文件的性质:如果它们是二进制文件,则默认的比较或合并工具将不起作用。(因此,我认为.gitattributes设置的自定义差异可能不起作用。
.gitattributes man page假设只有文本文件不同,可以在文本文件中生成补丁。也许应该定义一个textconv 配置选项来执行从.vi文件到文本file的转换
当我尝试在这个SO answer中设置自定义合并时,我遇到了一个非常小的文本文件的类似问题。
https://stackoverflow.com/questions/1992655
复制相似问题