home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / rcs567s.zip / README < prev    next >
Text File  |  1994-08-01  |  19KB  |  429 lines

  1. README for RCS 5.6.7.4 for PC's running under OS/2 or MS-DOS
  2. ------------------------------------------------------------
  3.  
  4. Release date: August 1st 1994
  5.  
  6. Changes: - added workaround for bug in MS-DOS SHARE.EXE
  7.      - new MS-DOS executables
  8.      - slightly corrected rcs/src/ms/Makefile and README files
  9.  
  10. Initial Release date: July 11th 1994
  11.  
  12.  
  13. 0. Archive Locations
  14. --------------------
  15.  
  16. This package is primarily distributed as
  17.  
  18.   ftp.informatik.tu-muenchen.de:/pub/comp/os/os2/gnu/devtools/rcs567pc.zip
  19.  
  20. As long as the author of this revision maintains the OS/2 and MS-DOS
  21. versions of RCS and has access to this archive site, the latest
  22. version can be found there (with file names indicating higher
  23. revisions, perhaps).
  24.  
  25. Other sites will have copies of this archive too, such as
  26.  
  27.   ftp.cdrom.com:/pub/os2/... (see 00index.txt file for exact location)
  28.  
  29. which is the best known OS/2 ftp archive site on the Internet.
  30.  
  31. Related packages that may be of interest for RCS users include (all
  32. path names relative to ftp.informatik.tu-muenchen.de:/pub/comp/os/os2/): 
  33.  
  34. - CVS 1.3 (gnu/devtools/cvs13p8b.zip and cvs13p8s.zip)
  35.  
  36.   CVS is a more advanced revision control system for multi user access
  37.   to shared source code without locks and with conflict resolution, it
  38.   works on top of RCS.
  39.  
  40. - GNU make 3.71 (gnu/devtools/gnumake.zip)
  41.  
  42.   This is a "make" program that knows how to access source files
  43.   maintained with RCS without need to specify rules.
  44.  
  45. - GNU Emacs 19.25 (gnu/emacs-19/*)
  46.  
  47.   The GNU Emacs editor is a very powerful programmer's editor that
  48.   provides easy access to files maintained with RCS via its included
  49.   "vc" package.
  50.  
  51. And, because used to create RCS for OS/2 and MS-DOS:
  52.  
  53. - the emx programming environment (gnu/emx+gcc/*)
  54.  
  55.   The emx environment (current version 0.8h, fix level 9) provides
  56.   tools to create and run 32-bit programs under OS/2 2.x and
  57.   MS-DOS. It uses many GNU programs, such as the gcc C/C++ compiler,
  58.   gas assembler, gdb debugger and libg++ class library.
  59.  
  60. - the rsx DOS extender (gnu/emx+gcc/contrib/dpmigcc4.zip)
  61.  
  62.   This is an alternative DOS extender for emx to let emx programs run
  63.   in a MS-DOS DPMI environment (such as Microsoft Windows 3.x).
  64.  
  65.  
  66. 1. Overview
  67. -----------
  68.  
  69. RCS is a revision control system, usually used by software developers
  70. to maintain revisions of the source code for the software they write.
  71.  
  72. This package contains in subdirectories:
  73.  
  74. rcs         the source code for RCS 5.6.7.4
  75.  
  76. rcsfront    the source code for RCSFRONT, a small front end tool for
  77.         easier management of a collection of files under RCS control
  78.  
  79. diff, diff16    the source code for the GNU diff program, an important tool 
  80.         required for RCS (two versions, see below)
  81.  
  82. doc        preformatted documentation (plain text and PostScript format)
  83.  
  84. bin32        OS/2 2.x executable programs (32-bit)
  85. bin16        OS/2 1.x executable programs (16-bit)
  86. bindos        MS-DOS executable programs (16-bit, but see below)
  87.  
  88. It is assumed that you are familiar with the concept and usage of
  89. RCS. If that is not the case, please read (or print and read) the
  90. original RCS documentation and manual pages available in the "doc"
  91. subdirectory. This file only documents platform and/or release
  92. specific information.
  93.  
  94.  
  95. 2. Installation
  96. ---------------
  97.  
  98. First, just pick the right set of executable programs and put them in
  99. a directory, which should be listed in the PATH environment
  100. variable. For the OS/2 32-bit executables, since they use a few DLL's
  101. (dynamic link libraries), this directory should also be listed in the
  102. LIBPATH statement in CONFIG.SYS.
  103.  
  104. Second, you need to set/check a few environment variables:
  105.  
  106. a) Either the USER or LOGNAME variable must contain the user's
  107.    (i.e. your) last name, unless you have network software installed
  108.    and want to use the name with which the user is logged on to the
  109.    network (see below). In this latter case, you need not set one of
  110.    these variables.
  111.  
  112. b) The TZ environment variable should contain your proper time zone
  113.    definition. If you use the OS/2 32-bit executables, you can also
  114.    use the EMXTZ variable if some other software on your machine
  115.    requires a more complicated value of this variable which programs
  116.    compiled with emx (see below) don't understand. 
  117.  
  118.    The TZ variable usually contains, the time zone name, the time zone
  119.    offset in hours to GMT and optionally the daylight savings time
  120.    zone name, examples are:
  121.  
  122.     SET TZ=PST8PDT        (pacific standard time)
  123.     SET TZ=CET-1        (central europe time)
  124.  
  125.    However, if you work strictly local and do not exchange source code
  126.    with people in other time zones, you may omit the TZ definition,
  127.    although that is NOT recommended.
  128.  
  129. c) The RCSINIT variable can contain options you want to use all the
  130.    time. The default value is suitable for work under DOS and on FAT
  131.    file systems under OS/2, i.e. all RCS files go into a subdirectory
  132.    RCS of the working directory. 
  133.  
  134.    If you work under OS/2 on a HPFS file system (or any other file
  135.    system that can handle long names), you may want to follow the Unix
  136.    convention of using RCS files in the working directory that have a
  137.    suffix of ",v". For this case, use "SET RCSINIT=-x,v/".
  138.  
  139.    See the RCS manual pages for details about all available options.
  140.  
  141. d) (this is optional, for OS/2 2.x only)
  142.  
  143.    The RCSLOAD environment variable can be set to a decimal number
  144.    specifying the amount of minutes to keep the RCS (and diff)
  145.    executables preloaded in memory. This requires that you have the
  146.    emx runtime package installed (emxload.exe is required). This
  147.    method may speed up the use of RCS from within GNU Emacs or with
  148.    CVS if many files are checked in/out.
  149.  
  150. After these steps, you should be able to use the RCS commands.
  151.  
  152.  
  153. 3. RCS
  154. ------
  155.  
  156. RCS is a widely used revision control system available for most Unix
  157. systems and several other platforms (such as in this package, for OS/2
  158. and MS-DOS). It allows shared use of RCS files in such heterogenous
  159. networks, for example.
  160.  
  161. * Note 1: Network Software
  162.  
  163. The RCS programs recognize certain PC networking software and query it
  164. for the name of the logged on user. The result can be overridden by
  165. the value of the USER or LOGNAME environment variables. The LOGNAME
  166. variable has precedence over the USER variable.
  167.  
  168. Under OS/2, the RCS programs recognize the following networking
  169. products:
  170.  
  171. - IBM LAN Server/Requester
  172. - Microsoft LAN Manager Server/Client
  173. - Novell NetWare Client
  174.  
  175. In addition, the installation of the IBM TCP/IP for OS/2 product
  176. usually sets the USER environment variable in CONFIG.SYS.
  177.  
  178. Under MS-DOS, the following networking products are recognized:
  179.  
  180. - IBM DOS LAN Requester
  181. - IBM PC Network
  182. - Microsoft LAN Manager Client
  183. - Microsoft Windows for Workgroups
  184. - Novell NetWare Client
  185.  
  186. and any compatible product.
  187.  
  188. Note that network support in RCS means only that the RCS commands can
  189. retrieve the current user name from the network software, nothing
  190. more.
  191.  
  192. * Note 2: binary files
  193.  
  194. This version of RCS for the PC does not support revision control of
  195. binary files. The main goal is to allow control of source files in
  196. heterogenous environments. In such environments, the systems can have
  197. different conventions for line separation in source code files. To
  198. allow shared use of RCS files between systems with different line
  199. separators, a conversion must take place when checking in/out
  200. files. This, naturally, breaks binary files. In a future version of
  201. RCS the concept of binary files may be introduced into the syntax of
  202. RCS files, to solve this problem. Until then, you can't check in/out
  203. binary files (such as icons or other resource data files), unless you
  204. use some kind of program to convert them into text format (such as
  205. uuencode).
  206.  
  207.  
  208. 4. RCSFRONT
  209. -----------
  210.  
  211. The RCSFRONT program, written by Jason P. Winters and Craig J. Kim is
  212. distributed by the Free Software Foundation. It allows checking in/out
  213. whole collections of files or even whole directory trees with RCS. It
  214. was heavily modified to run on the PC.
  215.  
  216. Of course, RCSFRONT is no substitute for more sophisticated software
  217. that builds on RCS for similar goals, such as CVS. But it may be
  218. sufficient for use on standalone systems or single-programmer
  219. projects. See its manual page in the "doc" subdirectory for more
  220. details.
  221.  
  222.  
  223. 5. GNU DIFF
  224. -----------
  225.  
  226. The RCS programs depend on the availability of the diff command under
  227. Unix, to compare two files (or two different revisions of a file in
  228. the context of RCS). Since that is not a standard command on PC
  229. operating systems, a version of it, the Free Software Foundation's GNU
  230. diff program, is included in this package.
  231.  
  232. Since the reliability of RCS depends on that of the diff program very
  233. heavily, a few more words on this topic:
  234.  
  235. This package supports PC's running OS/2 2.x (a 32-bit operating
  236. system), OS/2 1.x (a 16-bit operating system) and MS-DOS (a 16-bit
  237. operating system which, due to lack of any protection, allows
  238. implementing so-called DOS-extenders to run 32-bit programs on top of
  239. it).
  240.  
  241. The GNU diff program (current version is 2.6), which works very well
  242. with RCS is inherently a 32-bit program (it uses rather large data
  243. structures, for example). It can be compiled for OS/2 2.x without much
  244. effort. However, that is not the case for the 16-bit target
  245. systems. Because of this fact, long time ago I put a LOT of effort
  246. into porting the then current version (1.15) to let it run under OS/2
  247. 1.x and under MS-DOS and testing it thoroughly. As you can see from
  248. the version numbers, it has undergone quite some development since
  249. then and porting the current version again to OS/2 1.x and MS-DOS
  250. would be a lot of work.
  251.  
  252. Because the functionality of diff that is used by RCS has not changed
  253. since 1.15 and since it does not make sense to spend a lot of time for
  254. the 16-bit target operating systems any longer, I decided to include
  255. *two* versions of GNU diff in this package. The old version, 1.15, is
  256. included for use under OS/2 1.x and MS-DOS in the "diff16"
  257. subdirectory and the current version, 2.6, is included for use under
  258. OS/2 2.x (and MS-DOS on 386 CPU's, see below) in the "diff"
  259. subdirectory.
  260.  
  261. Since MS-DOS can be used to also run 32-bit programs with some kind of
  262. DOS extender, this current version of GNU diff can also be used under
  263. MS-DOS, if a 386 or higher CPU is available. This is very important
  264. because MS-DOS limits normal DOS programs to use only up to 640k of
  265. memory less the amount used for MS-DOS itself. And since some RCS
  266. programs call diff as a subprogram, even less memory is available for
  267. diff. So, naturally, the diff program when running under DOS can fail
  268. with "out of memory"-type errors if you try to use RCS commands on
  269. larger files. If that occurs, you should switch to the 32-bit version
  270. of diff, diff-32.exe in the "bindos" subdirectory and rename that to
  271. diff.exe.
  272.  
  273. The RCS commands merge and rcsmerge depend on the availability of
  274. another related command, the diff3 program. This program is a
  275. three-way file comparison/merge program that in turn uses the diff
  276. program as a subprogram. A version of it is included with the GNU diff
  277. program in the same package. 
  278.  
  279. The user interface of the diff3 program was changed noticable between
  280. versions 1.15 and 2.6 and the RCS programs merge and rcsmerge require
  281. at least the diff3 program included with GNU diff 2.1. For this reason
  282. and since it is a much smaller program than diff itself, the GNU diff
  283. 2.6's diff3 program has been "ported back" to GNU diff 1.15 and is
  284. also used in the 16-bit target environments.
  285.  
  286. To make a long story short, while the executables for the RCS
  287. programs, RCSFRONT and diff3 for all three target environments are
  288. made from the same source code, two different versions of GNU diff
  289. (1.15 and 2.6) are used to create the diff program's executables for
  290. the three platforms, 1.15 for 16-bit OS/2 1.x and MS-DOS and 2.6 for
  291. 32-bit OS/2 2.x and MS-DOS on 386 and up PC's.
  292.  
  293.  
  294. 6. The emx toolkit and the emx and rsx DOS extenders
  295. ----------------------------------------------------
  296.  
  297. The 32-bit diff program for dos, diff-32.exe, was created with the
  298. same compiler and toolkit (emx) that was used to create the 32-bit
  299. OS/2 2.x executables. That has saved a lot of extra work.
  300. Specifically, the emx 0.8h kit with patch 8 applied has been used. This
  301. toolkit uses the GNU gcc compiler and is freely available to everyone.
  302.  
  303. The emx kit includes a DOS extender (emx.exe) that allows to run
  304. 32-bit programs like diff-32.exe under plain DOS and in VCPI
  305. environment (certain DOS "memory managers" provide this
  306. environment). To run diff-32.exe in a DPMI environment (such as in DOS
  307. windows under Microsoft Windows 3.x), a different DOS extender is
  308. available, called rsx (rsx.exe). The diff-32.exe program automatically
  309. selects the right extender to run on at runtime. Both extenders are
  310. included in the "bindos" subdirectory in this packages as well as
  311. their COPYING and README files in the root directory of this
  312. package. You should be able to find the full packages of emx and rsx
  313. at the same places where you got this RCS package.
  314.  
  315. Note that you may already have either emx.exe or rsx.exe or even both
  316. on your MS-DOS system because they are popular and you may be using
  317. some other software that depends on them. In such a case, make sure
  318. you have only one copy (the newest one) on your system available via
  319. the PATH environment variable.
  320.  
  321. I mentioned that the emx toolkit was used to create the OS/2 2.x
  322. 32-bit executables. To save disk space, the RCS (and RCSFRONT and GNU
  323. diff/diff3) programs are linked with the shared runtime library of
  324. emx, so you have only copy of it on disk and not one in each separate
  325. executable. This emx runtime consists of emx.dll and emxlibc.dll. If
  326. you followed the installation instructions above, you should not
  327. notice any difference to "normal", statically linked programs. Since
  328. many free programs for OS/2 2.x are compiled with this
  329. compiler/toolkit, chances are big that you already have a copy of
  330. these DLL's on your system. Make sure you keep only one of them (the
  331. newest one) in a directory listed in the LIBPATH statement in your
  332. CONFIG.SYS.
  333.  
  334. In addition, because the RCS programs use a common set of utility
  335. functions, these have been put into another shared library,
  336. rcslib.dll. This further reduces disk space requirements
  337. considerably. Also, the GNU regular expression library used by GNU
  338. diff is also linked in a separate DLL, gnuregex.dll, since it is quite
  339. large and many of the FSF's programs use it, which are available for
  340. OS/2. You need only one copy of it on your system too.
  341.  
  342.  
  343. 7. Documentation
  344. ----------------
  345.  
  346. The manual pages for RCS and RCSFRONT programs and additional
  347. documents are available in the "doc" subdirectory in two formats: as
  348. plain ASCII files for reading with a browser and in PostScript (TM)
  349. format for printing on a PostScript printer or viewing/printing with
  350. GhostScript or GSView/PM. They were all created with the OS/2 version
  351. of the GNU groff text formatter from the "source" documents also
  352. included in this package (in the "rcs\man" and "rcsfront"
  353. subdirectories).
  354.  
  355. The documentation for GNU diff and diff3, version 2.6, is available as
  356. a TeXinfo source file in the "diff" subdirectory. A preformatted
  357. version in GNU Info format is in the "doc" subdirectory for reading
  358. with either the GNU Emacs editor or the standalone GNU info browser,
  359. but it can also be viewed with any normal file browser. A PostScript
  360. version of it, made with emTeX and dvips, is also in the "doc"
  361. subdirectory.
  362.  
  363. If you are not yet familiar with RCS and/or GNU diff, please read this
  364. documentation files.
  365.  
  366.  
  367. 8. Recompilation
  368. ----------------
  369.  
  370. In case you want to recompile: the 32-bit OS/2 2.x programs and the
  371. 32-bit MS-DOS GNU diff program are generated with the emx 0.8h toolkit
  372. (which uses gcc 2.5.7 or 2.5.8). Not only is the 0.8h version of emx
  373. required but also fix level 8 for it is absolutely required or you
  374. will experience crashes in the generated programs.
  375.  
  376. With emx you could even generate 32-bit versions of all RCS programs
  377. and also RCSFRONT for MS-DOS on a 386 or larger CPU, but you don't
  378. gain anything from them, since these programs do not reach the MS-DOS
  379. 640k limit. In addition, when using emx to compile RCS for DOS, no
  380. network support is available for technical reasons.
  381.  
  382. For the 16-bit OS/2 1.x and MS-DOS programs, Microsoft C 6.00A was
  383. used. For MS-DOS, you should also be able to use MS C/C++ 7.00 or MS
  384. Visual C++ with only minor changes (not tested, but MS's C compilers
  385. are usually upwardly compatible).
  386.  
  387. In the "diff16" directory, there are separate Makefile.dos and
  388. Makefile.os2 file for use with the NMAKE program included with
  389. Microsoft C. In the "rcsfront" and "diff" directories there is one
  390. Makefile in each with multiple targets.
  391.  
  392. The Makefile for RCS itself is in the "rcs\src\ms" subdirectory
  393. together with a few more supporting files.
  394.  
  395.  
  396. 9. Problems
  397. -----------
  398.  
  399. Please read this file carefully. If you have problems using RCS, please
  400. first check it again to see if you forgot something and also check the
  401. RCS documentation in the "doc" subdirectory. Especially the emx/rsx
  402. runtime stuff can be confusing sometimes.
  403.  
  404. If that doesn't help, send a short and descriptive e-mail
  405. message. Don't laugh, you don't know how often I get e-mail with
  406. contents like "the foobar program you ported to OS/2 does not work,
  407. what should I do?" without any more details. Remember that I can't
  408. read your mind, especially not over such distances. :-)
  409.  
  410.  
  411. 10. Author / Address
  412. --------------------
  413.  
  414. Walter F. Tichy wrote the original version of RCS.
  415. Paul Eggert wrote the changes for RCS version 5.x, and helps maintain it.
  416.  
  417. This port of RCS 5.6.7.4 to MS-DOS and OS/2 is based on an earlier
  418. release (RCS 5.6.3) made by Paul Eggert, Frank Whaley and Kai Uwe
  419. Rommel.
  420.  
  421. The DOS and OS/2 related changes for 5.6.7.4, for the new DOS and OS/2
  422. 32-bit targets, the new networking support and the ports of RCSFRONT
  423. and GNU diff 1.15 and 2.6 were made by Kai Uwe Rommel.
  424.  
  425.  
  426. /* Kai Uwe Rommel                                      Muenchen, Germany *
  427.  * rommel@ars.muc.de                              CompuServe 100265,2651 *
  428.  * rommel@informatik.tu-muenchen.de                  Fax +49 89 324 4524 */
  429.