[comp.sys.mac.programmer] Project management in THINK C

ari@eleazar.dartmouth.edu (Ari Halberstadt) (02/02/90)

The problem:

I have a program with around 14K lines split into a total of 77 files
(.c and .h files). In addition, there are MS Word documentation files.
My problem is that of tackling a program which is continuously
evolving to meet the new specifications of my employer. Currently I
simply discard previous versions of the program, since keeping track
of the state of all the files becomes unmanageable with such a project.
For the most part, I'm the only person currently working on the project,
but would like the program to be understood by others (including people
who will never get to speak with me in person).

I'm using THINK C since it offers several important advantages over MPW.
Specifically, it's an "easier" environment to use on a minute by minute
basis (especially its debugger). Beyond its ease of use it offers several
indispensable features such as referencing off of A4 for globals and
special code segments for an XCMD (yes, my program is an XCMD, and don't
laugh, it wasn't my idea...).

Attempted sollution:

I've tried implementing an automatic system using MPW's Projector. By writing
a few scripts, I can have MPW check out all the files in the project at
the start of a revision and then check in only those that I've modified
(those not modified need not be checked in). However, this method suffers
from several draw backs. First, MPW is a fairly large program, and running
it along with THINK C and Hypercard tends to eliminate memory for other
vital programs (including what I'm trying to develop). Second, there is
no simple way to automate file retrieval (which is why I check out all the
files at once). For instance, if I modify a header file in THINK C, 
THINK C needs to recompile a file, there is no way for it
to automatically check out the file from Projector. Running 'make' in MPW
is a problem, since I would essentially have to maintain an accurate duplicate
of THINK C's project information and inter-file relationships, besides
having to write quite a few scripts to manage everything (let alone remember
to go into MPW each time...). Most other problems are related to integrating
two fundamentally different programs on the Macintosh. There's also the
problem of using MPW's projector with MS Word documents, since MPW docs
state that MS Word deletes the 'ckid' resources. Finally, if I understand
correctly, Projector isn't as smart as UNIX RCS: it keeps a complete copy
of each version, rather than only the differences in the files (which means
that disk space can disappear very rapidly).

Final statement of request:
Perhaps someone out there has attempted (and succeeded?) in solving the
above stated problems. I'm sure others have come across it. Maybe the
authors of THINK C have some suggestions (hey, you guys reading this?).
There may also be some good project management software for the Mac.
Anyways, any useful suggestions will be greatly appreciated!

P.S. If there's enough interest (read: if people bug me enough) I'll
summarize eventually.

--

Ari Halberstadt '91		"May the force be with you"
ari@eleazar.dartmouth.edu	Disclaimer: "Live Free or Die"

escher@apple.com (Mike Crawford) (02/06/90)

I have thought a bit about this, having done a lot of source code control 
on Unix.  The source
code to RCS is available, and there is a better source code control system 
that has come out of Germany, though I forget the name, that is available 
in source.  They could be ported to the Mac.

I am fiddling with porting some of the GNU tools, grep, flex, and bison, 
to ThinkC.  I have not gotten very far yet, but I have the idea of running 
them with some kind of DA.

Integrating RCS into ThinkC, though is another problem.  ThinkC does not 
give the developer any means to customize it, nor the format of the 
project file (there have been times I have wished I could fiddle with it).

How about a "Source Code Control Filesystem?"  (or version numbering of 
files as in VMS...).  One could write a foreign filesystem driver that 
would diff files as they were written!  (I sure wouldn't want to write it).

ThinkC would sell to a lot of people who use MPW if they had good version 
control!  I cannot imagine any project with more than one or two 
programmers successfully using ThinkC over several releases.  I enjoy 
using ThinkC at home, but here at Apple we all use MPW.

Mike Crawford
Oddball Enterprises
694 Nobel Drive
Santa Cruz, CA 95060
oddball!mike@ucscc.ucsc.edu

Consulting for Apple Computer Inc.
escher@apple.com

These are my own opinions.  No one else may have them.