Question
I'm hitting the binary save problem described in
BinaryFileProblem,
BinaryFilesDifferMessage,
SaveErrorWhenAttachingBinaryFile.
However, I've installed GNU rcs and diffutils and made sure the GNU diff is linked into the ci, rcs, etc. Testenv is happy with the diff version.
The first case is that diffutils-2.8.1 returns error status 2 if binary files differ, which causes ci to die. The behavior of diff on binary files was changed between 2.7 and 2.8.1:
$ diffutils-2.7/diff /bin/ls /bin/cat ; echo $?
Binary files /bin/ls and /bin/cat differ
1
$ diffutils-2.8.1/src/diff /bin/ls /bin/cat ; echo $?
Binary files /bin/ls and /bin/cat differ
2
The second case is that with diffutils-2.7 and rcs-5.7, ci dies, but with a slightly different message:
ci: /export/home/n1doc/pub/Sandbox/WebHome/davis-ant.zip,v: bad diff output line: Binary files - and /tmp/T2ckaa.y differ
So, what versions of diffutils and rcs do people actually have working together to allow checking in multiple revisions of binary files? The combinations I tried both fail, but in different ways.
Environment
--
KenShirriff - 08 Aug 2003
Answer
Ok, I figured out the problem. If you compile
RCS (using the
default Solaris diff), and then recompile to use the GNU diff, without
running "configure" again, the
compile options from configure are set based on Solaris diff, not
GNU diff. In particular, the DIFFFLAGS are -n, not -an; the
-a "treat all files as text" flag is required for
RCS to work
with binary files. (Maybe testenv could be enhanced to
try doing ci on two different binary files to make sure
the rcs/diff code works correctly?)
--
KenShirriff - 08 Aug 2003
Thanks for letting us know.
--
PeterThoeny - 09 Aug 2003
I've added a pointer to this from
TWikiOnSolaris.
--
RichardDonkin - 10 Aug 2003