git 是否有可与 LabVIEW 一起使用的图形差异工具?

Is there any graphical diff tool for git, that can be used with LabVIEW?

我的雇主想将我们的版本控制系统切换到 git。我试过了,读了一本手册,到目前为止我对此很满意,但我遇到了一个问题,这似乎很难解决。我们不仅使用文本语言,还使用 ​​LabVIEW 2014(一种图形编程语言)。由于 git 将数据存储在二进制快照中,兼容性不是问题,但查看更改和合并似乎是不可能的。 几个小时以来,我一直在寻找 diff-alternatives,但我没有找到任何适合我们需求的东西。

实际上,LabVIEW 有一个内置工具可以比较源文件,还有一个用于合并。这些工具被锁定在程序中,没有 IDE 运行ning 似乎无法启动它们,因为它们仅适用于专业许可证的用户。虽然我们拥有这个版本,但似乎我们只能从源代码编辑器菜单启动它们。

刚开始 LVCompare.exe - 从命令行 - 导致以下错误(我们 运行 windows 10,这只是 git bash ) 在单独的 window 中(不在 bash 中):

$ ./LVCompare.exe ~/PATH_TO_PROJECT/Current_Test.vi ~/PATH_TO_PROJECT/Forecast_Test.vi


An error occurred while running LVCompare.

Open VI Reference in LVCompare.vi<APPEND>
VI Path: <b>C:\/Users/PATH_TO_PROJECT/Current_Test.vi</b>

我能想到的唯一解决方法——因为你不能同时打开两个同名的 VI(源文件)——非常不方便。如果我需要比较一个文件的两个版本,我必须检查版本一,以不同的名称将文件从工作目录中复制出来,检查版本二,在 LabVIEW 中打开文件,打开比较工具和 select 第一个文件。正如您可能猜到的那样,这是一个非常糟糕的选择,我认为其他任何开发人员都不会对此感到满意。

我需要的是一个图形化的、windows 就绪的工具,它可以显示差异。命令行解决方案在这里完全消失,因为这只会让定位更改变得更加复杂。

我查了几十个网页,确实很少有开发者声称自己写了工具,但大多数时候你必须安装很多辅助软件,它们会产生类似的错误或根本不起作用.

所以最后我的问题是:是否有可能显示两个 git 版本的 LabVIEW 源文件之间的差异而不需要经过所有这些努力?

开启 LVCompare

Starting just LVCompare.exe - from the command line - causes the following error (we run windows 10, this is just the git bash) in a separate window (not in bash):

$ ./LVCompare.exe ~/PATH_TO_PROJECT/Current_Test.vi ~/PATH_TO_PROJECT/Forecast_Test.vi


An error occurred while running LVCompare.

Open VI Reference in LVCompare.vi<APPEND>
VI Path: <b>C:\/Users/PATH_TO_PROJECT/Current_Test.vi</b>

即使在 git-bash 中,也使用 Windows 目录分隔符来连接 LabVIEW:\

从 git

中区分 VI

Is there any possibility to display the differences between two git-versioned LabVIEW source files withouth going through all that struggle?

查看此 GitHub 项目:https://github.com/joerg/LabViewGitEnv

mkdir -p /c/repos/other && cd /c/repos/other
git clone -b windows git://github.com/joerg/LabViewGitEnv.git
cd LabViewGitEnv
bin/LVBootstrap.sh --system

对于所有遇到同样问题的人:如果你想使用LVCompare.exe或LVMerge.exe,你必须link他们正确地添加到这些文件扩展名:

  • .vi
  • .vit
  • .ctl
  • .ctt

在 TortoiseGit 中,转到 [设置 > 差异查看器 > 高级] 和 [设置 > 合并工具 > 高级] 并为它们创建列表条目。使用这种格式的命令:

LVCompare.exe:

"C:\Program Files (x86)\National Instruments\Shared\LabVIEW Compare\LVCompare.exe" %mine %base -nobdcosm -nobdpos

LVMerge.exe:

"C:\Program Files (x86)\National Instruments\Shared\LabVIEW Merge\LVMerge.exe" %base %theirs %mine %merged

感谢kosist for this link