[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: merge doesn't work on windows
From: |
Nutchanon Wetchasit |
Subject: |
Re: merge doesn't work on windows |
Date: |
Thu, 20 Aug 2020 20:56:28 +0700 |
Kristof,
Disclaimer: I'm not a maintainer. And I'm not currently using Windows,
so my ability to answer this specific question is limited.
(See near the end of my answer for the exact runtime configuration
I used to test)
I must note first, that the current maintainer, as far as I understand,
is maintaining a GNU version of RCS [1]. The version you mentioned however
is a Purdue University version of RCS-- which is older.
Back to your issue...
> C:\rcs\bin>merge test.txt test.org test.new
> diff3.exe: subsidiary program failed
>
> C:\rcs\bin>echo %ERRORLEVEL%
> 2
There seems to be a porting quirk inside Purdue's Win32 port of GNU diff3.
That is, when `diff3.exe` tried to run `diff.exe`, somehow it didn't quite
manage to start that properly-- so `diff3.exe` bailed with said failure.
To avert that failure, I'd suggest that you replace `diff3.exe` and `diff.exe`
in your Purdue RCS installation with corresponding executables from
GNUWin32 project [2] (don't forget to also unpack their *.dll dependencies [3]
into the same folder too).
Then lastly, make sure that all of these binaries are installed within a path
which innermost folder is named `bin`. [4]
And you would find that `merge.exe` would magically start to work.
To give you a clearer picture: this is an exact installation steps
that I used for testing:
- Create a folder `C:\rcs`
- Create a folder `C:\rcs\bin`
- Extract all files from `bin\win32` folder inside rcs57pc1.zip [5]
into `C:\rcs\bin`
- Extract all files from `bin` folder inside diffutils-2.8.7-1-dep.zip [2]
into `C:\rcs\bin`
- Extract `diff.exe` and `diff3.exe` from `bin` folder within
diffutils-2.8.7-1-bin.zip [3] into `C:\rcs\bin` ,
overwriting existing files
I have tested this on WINE 1.6.2 (on Debian GNU/Linux 7.0 i386),
set to be Windows XP-compatible...
> C:\rcs\bin>merge test.txt test.org test.new
>
> C:\rcs\bin>echo %ERRORLEVEL%
> 0
Regards,
Nutchanon Wetchasit
P.S. If you got this to work, you could donate to GNU project if you like. [6]
But if this didn't work, then I'd have to ask which version of Windows you're
running on with this problem; so others could try to help.
[1] https://www.gnu.org/software/rcs/
[2]
https://sourceforge.net/projects/gnuwin32/files/diffutils/2.8.7-1/diffutils-2.8.7-1-bin.zip
[3]
https://sourceforge.net/projects/gnuwin32/files/diffutils/2.8.7-1/diffutils-2.8.7-1-dep.zip
[4] This appeared to be a convention used in GNUWin32 ports,
which allows ported programs to find and use `../usr` and `../etc`
(relative to EXE location) as data and configuration directory.
If you didn't follow this, `diff3.exe` would try to find `diff.exe`
in a wrong folder, and it would fail.
[5] https://www.cs.purdue.edu/homes/trinkle/RCShome/rcs57pc1.zip
[6] https://www.fsf.org/about/ways-to-donate/
-----
On Thu, 6 Aug 2020 19:48:54 +0200 (CEST)
kristof.mulier@telenet.be wrote:
> Dear RCS Maintainers,
>
> First of all my sincere thanks for your efforts to maintain this
> project.
>
> I downloaded rcs57pc1.zip (1.2MB) from your website.
> Unfortunately, every attempt to run merge.exe fails with
> the following error message:
>
> > diff3.exe: subsidiary program failed
>
> I tried the solutions offered on this StackOverflow post,
> but they won't work:
>
> https://stackoverflow.com/questions/12748493/rcs-on-windows-rcsmerge-always-fails
>
> So I'm basically stuck now. Can you please help me?
> I'm certainly willing to make a donation to your organization
> to express my gratitude.
>
> Kind regards,
> Kristof Mulier