Max
Max

Reputation: 2131

RCS on Windows - rcsmerge always fails

I'm using GNU RCS version 5.7 for Windows from the official Purdue RCS homepage. If I use the rcsmerge(1) command to merge changes from different branches, I get an error:

diff3.exe: subsidiary program failed

every time. Does anyone know why this should happen (and I have seen this problem discussed at least 10 years ago) and what the fix is? Does the GNU current RCS release 5.8.1 fix it? If so, can anyone point me to Windows binaries for this release?

UPDATE 2012-10-22: I have switched the diifutils(cmp, diff, diff3, merge) supplied with the Purdue distribution for the equivalents from the current GNU diffutils 2.8.7. This gets rid of the subsidiary program failed errors, but now gives me The filename, directory name, or volume label syntax is incorrect. exactly twice for each invocation of rcsmerge or diff3. This seems to be a Windows error message.

Upvotes: 2

Views: 661

Answers (2)

Buster
Buster

Reputation: 566

Eli Zaretskii has Windows binaries for RCS as part of his ezwinports project at http://sourceforge.net/projects/ezwinports/files.

The README there describes the reason for the problem you describe.

RCS-5.7-1: This is a port of the official RCS v5.7.13 source to MS-Windows. I did this port because the existing GnuWin32 port was broken: any RCS command that required running another program as a subprocess (e.g., rcsdiff) would either crash or produce an error message, due to an unhandled problem in the Windows versions of the spawn* library functions.

If I recall correctly the port is unfortunately missing the "pseudo symlink" feature of the Purdue release. (A quick definition, so as to be self-contained: a pseudo symlink is a text file named "RCS", located in the same directory as the working file, and whose contents are a directory path, which is treated as a link to a directory containing the master file. Links allow multiple "working copies" to share a "repository".)

Upvotes: 2

ghoti
ghoti

Reputation: 46876

It looks as if you're missing the diff3.exe binary from your %PATH%. And while it seems that the Purdue packages provide source code for diff3, they don't provide you with a Win32 binary.

If you've already installed diff3.exe from some other source, update your path to include its install location, or (less ideally) move the diff3.exe binary to a folder already named in your path.

If you haven't installed it, you can probably get it from the (ancient) UnxUtils project at SourceForge, or the DiffUtils project.

Upvotes: 0

Related Questions