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