Community technical support mailing list was retired 2010 and replaced with a professional technical support team. For assistance please contact: Pre-sales Technical support via email to sales@march-hare.com.
Hi folks, I have a question about how best to use and manage a code library that is used in multiple projects. Take for example two projects that share a code library. The projects are PROJ1 and PROJ2, both in the same repository. They share a common library I'll call PROJ-SHARED that I check out with each project using ampersand module specification. My modules file would look like: PROJ-SHARED -d PROJ-SHARED PROJ/PROJ-SHARED/SAS PROJ1-MAIN -d SAS PROJ/PROJ1/SAS PROJ2-MAIN -d SAS PROJ/PROJ2/SAS PROJ1 &PROJ1-MAIN &PROJ-SHARED PROJ2 &PROJ2-MAIN &PROJ-SHARED So if I checkout PROJ1 in my sandbox I get: ....\williamstim\PROJ1\SAS\... ....\williamstim\PROJ1\PROJ-SHARED\... Now let's say I am ready to tag PROJ1 for a Release. We use a tagging convention: Release1, Release2, Release3.... for all of our projects. I want to tag PROJ1 with the tag "Release1" and I do this by applying the tag to the \SAS folder my sandbox (*not* to the \PROJ1 folder, because the files in PROJ-SHARED are used in other projects that may not be ready for release, or have already gone past Release1. If I checkout PROJ1 to a production area using the tag "Release1" I get all my PROJ1 files, but not any files in the shared library, since I did not tag it "Release1". The only solutions I see at the moment are: 1. Change the tagging convention so I tag at the PROJ1 level and tag both the \SAS and \PROJ-SHARED folder in the sandbox, using a tag that includes the project identifier. For example, Release1 becomes PROJ1_Release1 or similar naming convention. In this way, the shared library gets tagged appropriately for each project that uses the shared library. This would break naming conventions we already have in place, so I am hoping for another solution. Some of our project identifiers and tags are already long strings, so the resulting tag names become longer and more prone to user entry error. (E.g : FOO100XX-FOO01_InterimRelease1 instead of simply: "InterimRelease1") 2. Maintain the shared code library as a completely separate module. This would not allow a strong link to the project moved into production, since the library may not be tagged with the same tag as the project (PROJ1). In fact, if we do not change our naming convention, it would not be tagged at all!? (bad!) I would enjoy hearing from anyone who uses shared code libraries between multiple projects and how they manage them using CVS. Thanks in advance, Tim SAS Systems Administrator PRA International Charlottesville VA, USA