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.