Projector Q&As

Technote PT 580October 1990

Revised by: Developer Support Center September 1993
Written by: Developer Support Center October 1990

This Technical Note contains a collection of archived Q&As relating to a specific topic--questions sent the Developer Support Center (DSC) along with answers from the DSC engineers. Current Q&A's can be found on the Macintosh Technical Q&A's web site.

Checking latest revision of a Projector revision branch

Date written: 7/26/92

Last reviewed: 6/14/93

I'm using the Projector system under MPW 3.2 and I'm looking for a way to do a "checkout -newer" on a branch. Is there any way to do this?


Apparently Projector doesn't have a command to get the name of the latest revision to a particular branch, let alone to check it out automatically. We think the only way to do this is to parse the results of a ProjectInfo call, looking for files that begin with the specification of the branch of the revision tree you're interested in. For example, if you do a GetProjectInfo -s, you get the names of all the revisions of all the branches. You can then use a script and StreamEdit to extract the latest revision in the branch you're interested in. Here's an example: First, set a variable to the root part of the specification of the branch you're interested in, as follows:

    set Branch "Test.c,2a"     # The first branch from revision 2 of Test.c

Then run the output of ProjectInfo -s through StreamEdit to extract the first line that matches this name:

    ProjectInfo -s | StreamEdit -d -e "/{Branch}/ Print;Exit"

This will extract the name of the most recent revision whose name matches the {Branch} variable, because ProjectInfo outputs revision names in order, most recent first. Once this name has been extracted, it becomes simple to check it out, using the CheckOut command.

MPW 3.2 Projector revision authors can't be changed

Date Written: 3/12/91

Last reviewed: 6/14/93

Using MPW 3.2 Projector, is it possible to change the author of a revision?


No, it's not possible to change the author of a revision. The Projector designers didn't see this as an important feature, but your message has been forwarded to them as an enhancement suggestion.

MPW 3.2 Projector and recursively checking out a named revision

Date Written: 3/12/91

Last reviewed: 5/21/91

Using MPW 3.2 Projector, is there a way to automate or write a script for recursively checking out project revisions by name?


You can recursively check out a named revision from a hierarchy of projects as long as the name is defined in each project in the hierarchy. When this was tried with the System 7.0 Finder sources (it's one project, containing a bunch of files and six more projects, which contain a total of...) there was no problem.

Here's what happened:

The Finder project was mounted in its normal place (the sources were kept on an AppleShare server; the local copy was kept in a directory called, strangely enough, "Finder"):

   directory Biggie:Finder:  #change to my local Finder directory
   MountProject FinderServer:FinderSources:  #mount the project from the server
   CheckOutDir -r :  #tell Projector about the hierarchy of folders in :Finder:

To try out the CheckOut command, another directory was created elsewhere on the hard disk, and the second named revision of Finder sources to it was checked out:

   newfolder Biggie:OtherFinder:  #make a new directory
   directory Biggie:OtherFinder:  #change to it
   CheckOutDir -r :  #tell projector to create the hierarchy beneath it
   checkout -p -r 'a1'  # checkout the old rev, and print progress

This worked as expected, recursively checking files out into the correct subfolders. That particular old revision was selected because it referenced files that had been deleted from the project. When CheckOut got to those files, it printed a warning and continued:

    Warning, one of the files that the name "a1" expanded to
        does not exist anymore.

You can use a revision name instead of a specific file name with the checkout command. You'll find this information on the CheckOut manual page of the MPW Reference Manual ,Volume 2.

Don't mix MPW versions sharing Projector files

Date Written: 5/2/91

Last reviewed: 5/21/91

Can both MPW 3.1 and MPW 3.2 users share the same Macintosh Projector file, or has the file format changed?


It isn't a good idea to mix different versions of MPW on the same Projector file--not because of differences in Projector, but rather because of MPW differences. Bug fixes and general changes in MPW 3.2 make it a better environment for development.

You should upgrade all your development systems so everyone can use the latest MPW version. If you're hesitant to upgrade because you've customized MPW, you can copy your UserStartup file over to add your customized settings.

So, yes, you can use MPW 3.1 and 3.2 on the same Projector files, but we highly recommend that everyone upgrade to MPW 3.2.

Reducing Projector database size

Date Written: 5/3/89

Last reviewed: 6/14/93

When I use DeleteRevision to remove old revisions from my Projector database, the actual size of the ProjectorDB file doesn't decrease much. How can I make the file smaller?


Projector does not currently compact files. Instead, it marks the areas of the database that are now free and puts them into a free page list. This effectively puts holes into your database that subsequently get filled up when you add more revisions.

Your database will get smaller only if the free pages are at the end of the file; then Projector will shrink the file. However, there is very little you can do about controlling this situation. If you absolutely must have a smaller database, then all you can do is check everything out, orphan them, and create a new database. The disadvantage of this method is that you lose all your revisions and revision comments.

The Projector team is aware of the need to compact the database. They are currently studying the feasibility of implementing such a function.

Previous Technote | Contents | Next Technote