[comp.sys.amiga] Revision control, anyone?

a218@mindlink.UUCP (Charlie Gibbs) (09/01/89)

In article <22978@louie.udel.EDU> talmage@lti.uucp (David Talmage) writes:

>What do Amiga programmers use for revision control?  I find myself in need
>of something like RCS; has it been ported to Our Favorite Micro?

     My approach to revision control is pretty simple.  I look at
the file size and the date and time stamps.  If they're all the
same, chances are the two versions are the same.  Make likes date
and time stamps too.  I've never worked with a really fancy system,
although I've written routines to massage redirected directory
listings based on date and time stamps.  However, for this to work
I need to do the following additional steps:

        1. Do all development work from a CLI.

        2. Use a shell such as Shell2.07m (thanks, Matt!) which
            has an internal COPY command that preserves date and
            time stamps.  Alternatively, ALIAS COPY COPY [] CLONE.

        3. Ask Commodore to make CLONE the default option for all
            COPY commands, whether from a CLI or the Workbench.
            This would give the date and time stamps a fighting
            chance of surviving once they reach someone else's
            machine.

        4. Get others to ask Commodore to make CLONE the default.

        5. Get others to get others to ask Commodore to make CLONE
            the default.

        6. Repeat step 5 until the desired recursion level is
            reached.

        7. Go to step 3.

        8. When stack overflow occurs, perform steps 3 through 7
            with regard to filenotes.  Since the COPY's default
            behaviour is to throw filenotes away, they likely
            won't stick around long enough to be of use to anyone;
            as far as I'm concerned they're currently a complete
            waste of time.


     On a somewhat more serious note, here's how I embed a date
stamp within an assembly language program:

Put this at the very top of the program (so you can find it):

        vermaj   equ    $02     ;Major version number
        vermin   equ    $30     ;Minor version number
        revyear  equ    $89     ;Year last assembled
        revmonth equ    $01     ;Month last assembled
        revday   equ    $09     ;Day last assembled

Put this anywhere else convenient:

        title   dc.b    'Charlie''s whiz-bang utility - version '
                dc.b    vermaj&15+'0','.'
                dc.b    vermin/16+'0',vermin&15+'0',' ('
                dc.b    revyear/16+'0',revyear&15+'0','/'
                dc.b    revmonth/16+'0',revmonth&15+'0','/'
                dc.b    revday/16+'0',revday&15+'0',')',0

and pass it to your "print a null-terminated string" routine,
which will then print:

        Charlie's whiz-bang utility - version 2.30 (89/01/09)

Leave out the version number if you're so inclined (for single-
module programs I find the date to be sufficient), and don't forget
to update the EQUates before writing out a new version (that's why
they're up front).

     In C, the line at the front can look something like this:

        char Version[] = "2.5 (June 18, 1989)";

and printing it is as simple as:

        printf ("Charlie's C program - version %s\n", Version);


     I know David Talmage asked for e-mail, but posting this
publicly gives me another opportunity to exercise point 3 above.
If anyone wants to take it as a flame, please refrain from using
gas-operated appliances while in the area.  :-)

Charlie_Gibbs@mindlink.UUCP
For every vision there is an equal and opposite revision.

talmage@lti.uucp (David Talmage) (09/01/89)

What do Amiga programmers use for revision control?  I find myself in need
of something like RCS; has it been ported to Our Favorite Micro?

I shall summarize the replies I receive by e-mail.


David Talmage

------------------------------------------------------------------------------
David W. Talmage, Systems Programmer		...!{buita,bbn}!lti!talmage
Language Technology, Inc.			talmage%lti.uucp@bu-it.bu.edu
27 Congress St., Salem, MA 01970		(508) 741-1507