Re: Control of version
Posted in 1997
Ian Goddard wrote:
>
> Tim Schaefer wrote:
> <snip>
> >
> > As for file-dependency chaining, this is something that I'd handle
> > in makefiles, but I learn new things every day. :-)
> >
>
> Make handles the fact that one file depends on another but how do you
> make it handle the fact that file2.4gl version 1.4 needs version 1.2 of
> file2.4gl and version 1.3 of file3.per?
>
> Does PVCS do this? In RCS you're simply reduced to putting it in the
> version description.
>
The $(GET) thingy was originally a MAKE built-in to resolve GETting a
file from SCCS, or possibly RCS. I've never really used it, so can't
comment on it other than say, read the man-page or other book(s) on make.
O'reily has a book on it, "Managing Projects with make", ISBN 0-937175-90-0.
I think it can provide you with the answers you need... As always, you'll
have to play around with make to get it to work the way you want.
> Defining the version of the database structure is even trickier. You
> could run dbschema after every change and give that a version number -
> but in practice migrating from one version to another might involve some
> ALTER TABLES and even some UPDATES (ALTERing a table to add a non-null
> column isn't a single step process and will involve an UPDATE that
> dbschema can't even capture). Such files must be applied to a specific
> version of the database.
>
> I'm currently working on a site which received updates of a 3rd party
> application every few weeks. I haven't counted the number of source &
> executable files in the system but it runs into thousands! Some of
> these releases involve changes to the database structure. Some of the
> code releases may include changes already installed at the site as
> bug-fixes made in advance of the general code release. This makes me a
> bit sensitive to these issues. The software house concerned seems to
> have nothing like RCS or SCCS in place at all!
>
> Ian
It is absolutely amazing at how many sites do not have a source code
control implementation, or how many programmers out there that do
not use make. I know of several shops here in Florida with large
amounts of 4GL, and the programmers do not use make, or SCCS/RCS/PVCS.
Many defer to that sissy i4gl interface, which should be removed
from the system. :-) I know of many who create shell scripts to
compile ESQLC! Make is actually quite easy to use, otherwise I
wouldn't have my digs for these other methods. There is also Microsofts'
nmake for Win95/NT, which is extremely similar to UNIX make, and allows
an additional feature of #if #else #endif programming.
Jonathan has provided on several occasions his makefile for 4GL,
which should be more than adequate for your needs, and is available
at the iiug archive. I believe it handles ESQL/C as well, although I
haven't used it in a while. You should acquire it and learn from it.
I challenge you in a most positive way to develop your own make methods.
If you want additional ideas, I've got make_mk, which produces makefiles
for 4GL, and ESQL/C--to a limited degree--and grnd_mk, which attempts to
produce a makefile for several executables in one makefile, from a flat-file
database of executables. They are at my site, are not perfect, but can
allow you to set up repeatable, consistent makefiles.
As I stated before, MAKE is easy to use. You might be surprised at
how little you need in the makefile for a typical 4GL or ESQL/C project.
Tim
--
Tim Schaefer \\\\|//
tschaefe@mindspring.com (6 6)
------------------------oOOo---( )---o00o---------
http://www.inxutil.com