首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >LVDiff在Git中不起作用

LVDiff在Git中不起作用
EN

Stack Overflow用户
提问于 2010-01-03 04:02:53
回答 4查看 1.1K关注 0票数 2

我正在尝试让meta-diff套件中的lvdiff与Git一起工作。

我的.gitconfig看起来像这样:

代码语言:javascript
运行
复制
[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 = true

lvdiff.sh看起来像这样:

代码语言:javascript
运行
复制
#!/bin/sh

"C:/Program Files/meta-diff suite/lvdiff.exe" "$2" "%5" | cat

我的.gitattributes文件看起来像这样:

代码语言:javascript
运行
复制
#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返回的结果都是:

代码语言:javascript
运行
复制
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

这就像它没有使用它,甚至没有意识到我的更改。有什么想法吗?

EN

回答 4

Stack Overflow用户

发布于 2010-01-03 05:17:26

我没有LabView,但您的配置中有一些地方是错误的。

  1. diff.lvdiff下的“external”设置应命名为“

”。

  1. lvdiff.sh中的“%”可能应为“$”。

在我的机器上(不是Windows,没有LabView),使用diff.lvdiff.command和你的.gitattributes就足以让git diff foo.vi运行外部的diff驱动程序(我甚至使用了路径名中有空格的diff驱动程序)。diff.lvdiff下的错误配置是您看到“二进制文件”消息的原因,它是显示为二进制文件的文件的默认差异消息。您可能已经想到了diff.external,它与diff.foo.command相关,但它适用于所有的文本差异,而不仅仅是具有diff=foo属性的路径子集。

票数 2
EN

Stack Overflow用户

发布于 2010-01-03 15:50:17

您的LVDiff的路径中有一个空格,但是您没有在引号中包含路径(就像您对LabVIEW合并所做的那样)。

LVDiff不允许重复的文件名,也许它会将远程文件复制到您的系统中,但不会重命名该文件。尝试编辑lvdiff.vi以重命名这两个文件中的一个(我建议重命名第二个文件。

请参阅一些说明here

票数 1
EN

Stack Overflow用户

发布于 2010-01-03 04:19:11

这取决于用LabVIEW编写的virtual instrument (VI)文件的大小和性质

二进制文件大小:即使这些文件是文本文件,但太小,它们在默认情况下也会被视为二进制文件的性质:如果它们是二进制文件,则默认的比较或合并工具将不起作用。(因此,我认为.gitattributes设置的自定义差异可能不起作用。

.gitattributes man page假设只有文本文件不同,可以在文本文件中生成补丁。也许应该定义一个textconv 配置选项来执行从.vi文件到文本file的转换

当我尝试在这个SO answer中设置自定义合并时,我遇到了一个非常小的文本文件的类似问题。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1992655

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档