1This is an experimental attempt to interface to the SCC API.
2
3Note that this code doesn't (yet) do anything useful; this file
4is currently for people who want to hack on the SCC interface,
5not people who want a plug-in integration between any particular pair
6of packages.
7
8To install the test DLL, build scc.dll and then add the following
9to the registry using the registry editor:
10
11key/value                what to put there
12HKEY_LOCAL_MACHINE
13  SOFTWARE
14    CVS
15      CVS
16        SCCServerName    Concurrent Versions System
17        SCCServerPath    <full pathname of scc.dll>
18    SourceCodeControlProvider
19      ProviderRegKey     "SOFTWARE\CVS\CVS"
20      InstalledSCCProviders
21        Concurrent Versions System   "SOFTWARE\CVS\CVS"
22
23Note that ProviderRegKey is the default source control
24system, and InstalledSCCProviders list _all_ installed
25source control systems.  A development environment is allowed
26to use either or both, so you should set both of them.
27
28Note also that we are using "CVS" as the supplier of CVS.
29CVS is not owned by any one company, so CVS seems like the
30most appropriate string to put there.
31
32If you do this right, then "Source Control" should appear
33under the "Tools" menu (for Visual C++ 4.x; the details of course may
34vary for other development environments).
35
36NOW WHAT?
37
38Well, I haven't yet figured out _all_ the different ways
39that projects work at the SCC level.  But here is what I
40have done which has worked.  SPECIAL NOTE: many paths are
41hardcoded in scc.c, so you will need to fix that or put
42things the same place I did.  As you try the following you
43will want to follow along in d:\debug.scc.
44
45* Create a dummy project in d:\sccwork.
46* On the Tools/Source Control menu, select "Share from CVS..."
47* This will cause SccAddFromScc to be called, which will
48  claim there are two files, foo.c and bar.c, which should
49  appear as source controlled (grey) files in the file
50  listing.
51* Now select one of the files and pick "Get Latest Version..."
52  from Tools/Source Control.  You'll get a cheezy dialog (we
53  need to see why it is cheezy--by that I mean the size and
54  placement are funny), and if you say OK, then SccGet will
55  get called (which doesn't currently do anything).
56
57TOOLS IMPLEMENTING THE SCC
58
59I'm not sure whether we'll want to try to make this a comprehensive
60list, but at least for the moment it seems worthwhile to list a few of
61the programs which implement the Integrated Development Environment
62(IDE) side of the SCC.  Some of this information is based on rumor or,
63worse yet, usenet posting, so it probably should be verified before
64relying on it.
65
66* Microsoft Developer Studio 4.x Professional (not Standard, not 2.x).
67* Microsoft Access V7.0
68* Powersoft's Optima++, PowerJ, and Power++
69  (not sure which versions, but this information was added in 1997 if
70   that helps.  Someone on usenet reports 32 bit Powerbuilder version
71   5.03 but not version 4, version 5.0, or 16 bit Powerbuilder.).
72* Premia's CodeWright editor
73  (versions 5.00b and 5.00c; not sure about older versions).
74* HAHTsite (not sure what versions).
75
76SPECIFICATIONS OR OTHER DOCUMENTS DESCRIBING THE SCC
77
78The only publicly available document which we are aware of is pubscc.h
79in this directory.  This should be sufficient to get a start at
80playing around with the SCC, and if you have done that and then
81proceed to run into those areas which pubscc.h does not document well,
82you are encouraged to send mail to bug-cvs@gnu.org with your
83questions.
84
85OTHER INTERFACES
86
87There are other interfaces which interface between a development
88environment (or other front-end) and a source control system.  That
89is, in general terms they provide somewhat the function of the SCC,
90although they may be at a somewhat different level and systems may
91support/use several interfaces rather than it being an either/or thing.
92
93If you know of other interfaces which should be added here I guess the
94best place to make suggestions is bug-cvs@gnu.org (although
95the following list is not intended to be particularly CVS-centric).
96
97* The CVS remote protocol is documented in doc/cvsclient.texi in the
98CVS distribution and has at least 2 implementations of the client
99(jCVS and CVS command line client), in addition to having been
100implemented at least once by a special-purpose perl script.
101
102* Microsoft's OLE Automation interface.  The spec is available for
103download at http://www.microsoft.com/ssafe.  I'm not sure whether this
104has been implemented by other source control systems.  Metrowerks
105implements this via a module which speaks the Metrowerks API out one
106end and the OLE Automation interface out the other (the module runs on
107Windows, not Mac).
108
109* Symantec's Visual Cafe interface.
110
111* Metrowerks publishes and implements the CodeWarrior IDE Version
112Control System API.  I think maybe the way to get a copy of the spec
113is as part of CodeWarrior but I'm not completely clear on that.
114
115For (some) more details on these interfaces, and others, see
116    http://www.cyclic.com/cvs/dev-int.html
117