1。问题已解释
我需要在Windows 10上运行merge
工具(GNU rcs项目的一部分-版本控制系统)。这些是要求:
- 步骤1:可执行文件
merge.exe
必须在本机Windows cmd终端中运行。 - 步骤2:不应修改
PATH
env变量。 - 步骤3:可执行文件可以位于任意文件夹中(当然,如果需要,可以在其旁边放置一堆dll)。
这将使我们无法解释为什么这些要求如此重要。拜托,只要按原样带走它们即可。
2。第一次试用:运行msys可执行文件
我在C:/msys64
中安装了MSYS2,并在以下位置找到可执行文件:C:/msys64/usr/bin/merge.exe
。因此,请尝试一下STEP1〜STEP3。
STEP 1
如果将C:/msys64/usr/bin/
添加到PATH
env变量中,我可以在 Windows本地终端中运行它:
C:/Users/Kristof>merge.exe a.txt b.txt c.txt
哈雷!
STEP 2
不幸的是,当我不修改PATH
env变量并改为通过其完整路径调用merge.exe
时,事情就会出错:
C:/Users/Kristof>"C:/msys64/usr/bin/merge.exe" a.txt b.txt c.txt
/usr/bin/diff3: subsidiary program 'diff' not found
我不明白为什么会出现此错误。毕竟,可执行文件diff3.exe
和diff.exe
都位于merge.exe
旁边。为什么找不到它们?
第3步
好吧,如果我不能先进行上一步,那么STEP3显然是没用的。
3。其他审判
3.1 Purdue二进制文件
您可以在此处找到rcs的二进制文件: https://www.cs.purdue.edu/homes/trinkle/RCShome/
我从该网站下载了 rcs57pc1.zip (1.2MB)。不幸的是,每次尝试运行merge.exe
都会失败,并显示以下错误消息:
diff3.exe: subsidiary program failed
我尝试了此StackOverflow帖子中提供的解决方案,但它们也不起作用:
RCS on Windows - rcsmerge always fails
3.2 ezwinports
我从以下位置下载了 rcs-5.7-1.zip : https://sourceforge.net/projects/ezwinports/files/
运行其merge.exe
文件时,出现以下错误:
diff3.exe: Unknown signal 0xEEEEEEEE
merge aborted
确实,我在解压缩的文件夹中看不到diff3.exe
工具。因此,我从MSYS安装(位于diff3.exe
中)中复制了diff.exe
和 C:/msys64/usr/bin/
到解压缩后的rcs-5.7-1
文件夹中。没有成功同样的错误消息。
3.3 GnuWin32
GnuWin32项目以流行工具的许多Linux到Windows转换而闻名。我下载了GnuWin32(http://gnuwin32.sourceforge.net/),并完全安装到C:/gnuwin32/
中。我搜索了C:/gnuwin32/
文件夹,但找不到任何地方的merge.exe
工具。这很奇怪,因为在这里明确提到GNU rcs项目是GnuWin32项目的一个包: