CompuServe Thread

#Source Controll Blues

3 messages in this thread
#7080From: John FunkJul 16, 1993 5:32 PM
Our six member development team was ecstatic when we got Symantec C++, because of the new source control system. We have been in need a source control system for our monster project that includes 650 source and header files. We are happy with the added features in the new project manager and compilers but working with the source control system has been a nightmare. After around 60 hours of work, and about 2 hours of discussions with Symantec technical support, it is clear that, as shipped, source server will not work for our project. There are three major problems with it. The manual has some blatant and serious error regarding source server. The source server menu interface doesn't support all the features that are needed. Worst of all, the source server interface doesn't work with LARGE projects. – The manual – Using the sample code in the bullseye project, I wanted to test working with revision branches, like experimental branch of the code describes on page 474 of the manual. This worked without a problem but when I tried to reconnect the branch, I discovered that the MERGE BRANCH procedures on page 488 didn't work. When I called tech support, I was told this part of the manual was incorrect. The command interface to source server isn't part of the product. So what good is the SOURCE SERVER COMMAND LINE SUMMARY on page 495? Another bug in the manual is that it doesn't describe what function the "SET PROJECTOR DB.." menu provides. It brings up a dialog that asks what projector database to select, but why are you selecting it , and what effect does this have on anything else? – The menu interface – After finding out that the manual says to use the MERGE BRANCH procedures to bring a version back into the original tree. I discovered that the Menu interface doesn't provide this feature at all. You can't get a branch of a tree back into the root with what is included in Symantec C++. I also discovered that the menu interface doesn't allow you to delete a revision. This means that if someone checks out a modifiable version of a .C file, and then decides that his modifications don't work, there is no way to simply forget about the checkout. The .C file must be checked back in as a new revision even though it was never changed. Another feature that isn't supported is checking in a file that isn't part of the project. We have some documentation files that I would like to check in. It seems the only way is to add it to the project with a .c or a .h extension. By the way the only way to get all of the .h files to check in is to go into the extensions area of the Think Project Manager options, and tell it to process .h files with one of the compilers (Scott in Tech support found this for me). – Problems with LARGE projects – After getting "comfortable" with the source server menu using the BullsEye project, I decided that even with problems this product would save us several man hours a week, so I decided to check our project into the system. The first problem I encountered was that the release notes say to keep your projector databases to less than 50 files or you will suffer "performance degradation". Our project is organized with functionally related modules in sub folders under the project folder. So I thought it would make sense to organize each of these folders into separate projector databases. Because of the problems I had encountered with the manual so far I decided to call Symantec tech support to get their views on organizing the project in source server. Their response was that splitting the project between several projector databases would cause problems and that it was best to use only 1 database. I created a single projector database on my local disk, selecting all 650 files to be checked in, selected the "Delete my copy" radio button, and hit the check-in button. A moment later I received an alert that says "Apple Event timed out – source server may still be processing". Since I could see source server working I left it alone. After source server had finished, I still had files in my directory. It didn't check in all my files. I thought "ok it did time out after all". I decided to start again with a new database and a new copy of my project. This time I checked in each sub-folders of files at separately. I still received timeout errors, but my files did get checked in. After checking in a few folders of files I decided to try to check them back out. In the checkout dialog I selected files that belonged in two separate folders. I also selected the "Read only" radio button, and the "Default directories" pull down. As soon as I clicked the "Checkout" button I got a bus error. After repeating the bus error several times narrowed the problem down to the "Default directories" pull down. It doesn't seem to work when multiple folders are involved. Because the checkout dialog crashes every time multiple destination directories are selected, I decided to put all of our projects files in one folder. I then began checking all the files in a few at a time (to avoid timeout errors). After getting all 600+ files checked in I pulled down the "Source Server, Checkout" menu. Immediately source server went into "Name Revision" state, but I didn't get the checkout dialog. After a moment I got an alert saying ""Apple Event timed out – source server may still be processing". At this point I was dropped back into the project manager. It turns out the project manager times out after 1 minute, but it takes source server about 2 minutes to respond. This test was on my local hard disk. What happens when the projector database is located on a file server, where the amount of work that can be done in 1 minute is variable. I suggest when an apple event to source server times out, the user should be prompted to continue waiting rather than simply aborting the process. Since I couldn't check all my files into the same projector database, at least not if I ever want to check them out, I decided to split the project in half. Files from A..L would go in one database and M..Z in another. After checking everything in I discovered that you can't "Name Revisions" across multiple projector databases. Source server returns "NameRevisions – File 'XXXXX' is not part of the project" for every files in one of the databases. I have decided that the menu interface to is not ready for prime time yet. Perhaps ToolServer ($100 from APDA) which provides a command line interface to source server is the solution I need. For now I am now waiting for suggestions from our local apple rep, our local Symantec rep, or anyone else. Basically the new source control system shipped in Symantec C++ won't help people with LARGE projects, the ones who really need it.
#7205From: Kevin IrlenJul 20, 1993 9:38 AM
<<< When I called tech support, I was told this part of the manual was incorrect. The command interface to source server isn't part of the product. >>> Sorry, but whoever you spoke to was misinformed! The command line interface is definitely part of the product! <<< … the manual is that it doesn't describe what function the "SET PROJECTOR DB.." menu provides. It brings up a dialog that asks what projector database to select, but why are you selecting it , and what effect does this have on anything else? >>> True, this could be documented better (at all); it does serve a function though. You could in fact be switching between different projector db's. <<< …the manual says to use the MERGE BRANCH procedures to bring a version back into the original tree. I discovered that the Menu interface doesn't provide this feature at all. You can't get a branch of a tree back into the root with what is included in Symantec C++. >>> Yes, unfortunately the manual mistakenly documents a feature of SourceServer which is NOT available in Symantec C++. Merge Branch is an MPW script and can only be used via the MPW editor. <<< I also discovered that the menu interface doesn't allow you to delete a revision. >>> Not so, you do this with Undo CheckOut. <<< Another feature that isn't supported is checking in a file that isn't part of the project. We have some documentation files that I would like to check in. It seems the only way is to add it to the project with a .c or a .h extension. >>> Consider this suggestion noted. <<< … the only way to get all of the .h files to check in is to go into the extensions area of the Think Project Manager options, and tell it to process .h files with one of the compilers… >>> This is a known bug. A better workaround is to use the command line interface to check the files in manually (CheckIn -new fullpathnameofyourfile). <<< …the release notes say to keep your projector databases to less than 50 files or you will suffer "performance degradation". … So I thought it would make sense to organize each of these folders into separate projector databases. Because of the problems I had encountered with the manual so far I decided to call Symantec tech support to get their views on organizing the project in source server. Their response was that splitting the project between several projector databases would cause problems and that it was best to use only 1 database. >>> Again, this is not the case, and my apologies for your having been misinformed. You may certainly use multiple projector databases. <<< I checked in each sub-folder of files at separately. I still received timeout errors, but my files did get checked in. >>> This timeout problem is being looked into. <<< After repeating the bus error several times narrowed the problem down to the "Default directories" pull down. It doesn't seem to work when multiple folders are involved. >>> Also being looked into. <<< I suggest when an apple event to source server times out, the user should be prompted to continue waiting rather than simply aborting the process. >>> Suggestion noted. <<< After checking everything in I discovered that you can't "Name Revisions" across multiple projector databases. Source server returns "NameRevisions – File 'XXXXX' is not part of the project" for every files in one of the databases. >>> This is true. This is not a feature of SourceServer. <<< For now I am now waiting for suggestions from our local apple rep, our local Symantec rep, or anyone else. >>> [continued in the reply]
#7206From: Kevin IrlenJul 20, 1993 9:38 AM
[continued] Though there are existing problems with SourceServer, I hope this clears up the two key misunderstandings regarding the command line interface and using multiple projector DB's, and that you will again be able to consider using SourceServer worth the effort. Kevin Irlen Symantec Languages Support