我的雇主希望将我们的版本控制系统切换为git。我尝试了一下,阅读了手册,到目前为止,我对此感到很满意,但是我遇到了一个问题,似乎很难解决。我们不仅使用文本语言,还使用LabVIEW 2014(一种图形编程语言)。由于git将数据存储在二进制快照中,因此兼容性不是问题,但是查看更改和合并似乎几乎是不可能的。 几个小时以来,我一直在寻找差异替代方案,但找不到适合我们需求的任何方案。
实际上,LabVIEW有一个内置工具来比较源文件和一个用于合并的文件。这些工具被锁定在程序内部,并且似乎无法在没有运行IDE的情况下启动它们,因为它们仅适用于专业许可证的用户。尽管我们拥有此版本,但似乎只能从源代码编辑器菜单中启动它们。
从命令行仅启动LVCompare.exe会在单独的窗口(不在bash中)中导致以下错误(我们运行Windows 10,这只是git 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中打开文件,打开比较工具并选择第一个文件。您可能会猜到这是一个非常糟糕的选择,而且我认为其他开发人员都不会对此感到满意。
我需要的是一个可在Windows上使用的图形化工具,可以向我展示这些差异。命令行解决方案在这里根本无法使用,因为那样会使定位更改更加复杂。
我检查了数十个网页,并且确实没有几个开发人员声称拥有自己的工具,但是大多数时候您必须安装许多辅助软件,并且它们会产生类似的错误或根本无法正常工作。< / p>
所以最后我的问题:是否有可能显示两个git版本的LabVIEW源文件之间的差异,而无需经历所有艰苦的工作?
答案 0 :(得分:1)
从命令行仅启动LVCompare.exe会在单独的窗口(不在bash中)中导致以下错误(我们运行Windows 10,这只是git 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版本的LabVIEW源文件之间的差异而无需经历所有麻烦?
查看此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
答案 1 :(得分:0)
对于遇到同样麻烦的所有人:如果要使用LVCompare.exe或LVMerge.exe,则必须将它们正确链接到以下文件扩展名:
在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