[Top][All Lists]

[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


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
> 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 [5]
  into `C:\rcs\bin`
- Extract all files from `bin` folder inside [2]
  into `C:\rcs\bin`
- Extract `diff.exe` and `diff3.exe` from `bin` folder within [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
> C:\rcs\bin>echo %ERRORLEVEL%
> 0

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.

[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.


On Thu, 6 Aug 2020 19:48:54 +0200 (CEST) wrote:

> Dear RCS Maintainers, 
> First of all my sincere thanks for your efforts to maintain this 
> project. 
> I downloaded (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: 
> 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

reply via email to

[Prev in Thread] Current Thread [Next in Thread]