Hello,
> Is the cvs.exe that ships with WinCVS ok to use? I see it's 1.10.8, but I
> also see that it still has patch, merge, etc... as separate executables. Is
> everyone just downloading WinCVS and then using "wincvs.exe" or "cvs.exe"
> depening on whether they want command line or GUI?
I think it's ok to use. The cvs.exe of WinCvs has minor compilation
patches for building against VisualC++. But it's real identical to the
original branch.
For example, you can check-out the WinCvs code and issue a "cvs diff -r
CVSGUI1108 -r CVS1108" in cvsgui/cvs-1.10. You'll see that there are a
bunch of new VisualC++ projects (updated for the latest versions), some
compilations problems, a lot of macintosh code for MacCvs and finally
some changes enclosed in #ifdef CVSGUI_SHL which are compiled only for
the cvs used by WinCvs (a dll, not the cvs.exe) and which are related to
the communication of cvs and WinCvs : as an example, these are the kind
of changes :
RCS file: /cvsroot/cvsgui/cvs-1.10/diff/diff3.c,v
retrieving revision 1.1.1.4.2.1
retrieving revision 1.1.1.4
diff -r1.1.1.4.2.1 -r1.1.1.4
19,23c19
< #ifndef CVSGUI_SHL
< # include "system.h"
< #else /* CVSGUI_SHL */
< # include "diff.h"
< #endif /* CVSGUI_SHL */
---
> #include "system.h"
34,68d29
< #ifdef _MSC_VER
< // BUG FIX on Windows at shared drives with
< // unwritable root directories.
< //
< // For windows, tmpnam() fails in the scenario where the
< // current working directory is a shared drive with
< // unwrittable root (a common situation for a file server)
< // This is because tmpnam() returns
< // a temporary file at this root and then diff3 wants
< // to write to it. Bad, bad, bad. Need to use _tempnam()
< // which will refer to the environment's TEMP setting.
< // Unfortunately, we also then have to convert to static
< // storage, since tmpnam returns static-ly stored string,
< // but _tempnam's string is malloced up.
<
< char static_tempnam_storage[_MAX_PATH];
<
< char* tmpnam_for_windows(char* param1)
< {
< char* ac = _tempnam(NULL,NULL);
< if (ac) {
< strncpy(static_tempnam_storage,ac,_MAX_PATH);
< free(ac);
< return static_tempnam_storage;
< }
< else return NULL;
< }
<
< #define tmpnam(x) tmpnam_for_windows(x)
< #endif // WIN32 || _WIN32
> Who IS responsible for the Windows command line cvs.exe?
I don't know. I maintain this part of WinCvs. What I do is importing the
latest version of cvs and re-apply the patch to it.
Regards,
alex.