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.

Reply via email to