xref: /openbsd/gnu/usr.bin/cvs/windows-NT/README (revision 898184e3)
1	           Concurrent Versions System (CVS)
2		    ported to Microsoft Windows NT
3
4Check the ../INSTALL file for information on the most recent version
5of CVS which has been known to be tested with NT and/or Win95.
6
7This port implements the full set of CVS commands, both local and
8client.  It does not provide a CVS server for NT.  Multiple users can
9access a common CVS repository, if they can mount the repository,
10either directly or via a networked file system.
11
12We don't distribute a .ZIP source distribution partly because, as far
13as I can tell, PKZIP insists on munging long file names, which would
14confuse the makefile for Visual C++.
15
16To compile, use Microsoft Visual C++ on the file cvsnt.mak in the
17distribution's top directory.  At least with the tar port I'm using,
18the sources get extracted without carriage returns and you must add
19carriage returns to the end of every line in cvsnt.mak.  It doesn't
20seem to be necessary to add them to any other file.  This makefile was
21generated with Visual C++ 4.x.  For Visual C++ 5.x you can try
22cvsnet.dsp.  For Visual C++ 2.x you probably are in the position of
23digging through old versions of CVS for a cvsnt.mak and then updating
24it.  Feel free to let us know about problems of this sort as with
25other bug reports.
26
27Update as of 13 Oct 1998: I (Jim Kingdon) do build CVS successfully
28with Visual C++ on a regular basis.  The builds on download.cyclic.com
29(CVS 1.10, CVS 1.10.3, &c) are built using Visual C++ 4.0 and
30cvsnt.mak from the Debug (not release) configuration.  I have pretty
31much given up on getting the Visual C++ IDE to generate a makefile
32that works for anyone except me :-(.  If I knew an easy fix for this,
33I'd do it, but it is easier to just complain about Microsoft's finicky
34IDE and makefile/project file format du jour :-).  Having people send
35in "fixed" versions of cvsnt.mak and cvsnt.dsp regularly, as has been
36happening, is fine but it isn't an "easy fix", unfortunately, as it is
37rarely clear to me whether a particular submission will improve things
38or not.
39
40Send bug reports to bug-cvs@gnu.org.
41
42As of May 1996, this port passed all of the tests in src/sanity.sh,
43save the one that deals with reserved all-upper-case tags (BASE and
44HEAD), due to a limitation in the NT command shell.  sanity.sh
45provides pretty minimal feature coverage, but still gives me some
46confidence it isn't totally broken.  The tests were run by defining
47KLUDGE_FOR_WNT_TESTSUITE (see src/main.c).
48
49To operate in client mode with old versions of CVS (1.9 and older),
50you will need GNU patch.  To do compressed transfers with old versions
51of CVS (1.8 and older), you also need gzip.  Note that you do NOT need
52an rsh client if you are using the :server: access method (which uses
53the internal rsh client), except perhaps for debugging.
54
55To operate in local mode, you should need nothing other than CVS (that
56is, you no longer need RCS, diff, &c, in order to run CVS).
57
58One useful site may be the Congruent ports of various packages to
59Windows NT, binary and source:
60
61	ftp://microlib.cc.utexas.edu/microlib/nt/gnu/
62
63In particular, microlib seems to have versions of GNU tar and gzip
64which support long file names, which you will need to unpack the CVS
65source distribution.
66
67The CYGWIN32 package is a port of various GNU tools for NT, providing
68bash as the shell and gcc as the compiler.  Basically, you don't want
69the stuff in this directory for CVS running under cygwin32; you want
70the same stuff as for unix (../configure, Makefile.in, &c).  For
71cygwin32 information see
72
73	http://www.cygnus.com/misc/gnu-win32/
74
75Morten Hindsholm's port of CVS 1.4A2 to Windows NT may be useful if
76you're modifying CVS itself:
77
78	ftp://ftp.digex.net/pub/access/schueman/cvs/cvsnt14b.zip
79
80Here are some other things which may be of interest for unix junkies:
81
82	http://www.halcyon.com/gvr/vim/       (VI clone)
83	ftp://wuarchive.wustl.edu/systems/ibmpc/gnuish/less177.zip
84
85If you want to browse/edit the sources using Visual C++, we recommend
86setting tab stops to 8 spaces, since that is what the CVS sources
87expect.  The tab stop setting is in the "Editor" or "Tabs" section of
88the "Options..."  dialog which is in the "Tools..." menu.
89
90The following harmless warnings are known:
91
92- regex.c: 103 warnings, mostly signed/unsigned comparison conflicts.
93  I am not going to *touch* this code. :-) I got my fill of it when I was
94  hacking GNU Emacs.
95
96.\lib\getdate.c(760) : warning C4013: 'getdate_yyparse' undefined; assuming extern returning int
97.\lib\getdate.c(1612) : warning C4102: 'yyerrlab' : unreferenced label
98.\lib\getdate.c(1612) : warning C4102: 'yynewstate' : unreferenced label
99
100Oct 1998 update: there are more now.  I've gotten lax about removing
101the warnings lately :-( -kingdon.
102
103CODING STANDARDS for Windows
104
105For general coding standards, see ../HACKING.
106
107In my opinion win32 is the right API to write to.  Microsoft seems to
108be better about compatibility across versions than unix vendors (on a
109good day, anyway)--the Visual C++ package I bought has not only win32
110but also win16 too (that is, they also include Visual C++ 1.x).  As
111far as I know there is only one win32 (not counting win32s or win32c
112or whatever), not multiple versions.
113
114ANSI C is also good.  As far as I know these calls work fairly well on
115NT.
116
117What one should avoid like the plague on NT (IMHO) is POSIX calls such
118as stat().  These tend to be very poorly supported, and tend to break
119from version to version or vendor to vendor (the latter being
120particularly an issue on OS/2, with IBM, Watcom, and EMX all having
121_very_ different C libraries).
122