by mattbnh on Thu Apr 30, 2009 5:33 am
Hi Peter:
First some opinionated answers to your questions.
1) What is the best way to do this given that I work daily with the source Help files?
Answered below, but what really matters is whether it is more important to preserve work or track changes. For docs, I believe preserving is more important, while with code, tracking changes is more important.
2) Has anybody had any bad experiences working with their Help system when the source is controlled by Clear Case?
We have had build problems trying to build help and PDFs directly on checked out files in place.
3) I would need to check out all of my source files each day from Clear Case and then check them in at the end of the day. Would this break any links or become tedious?
It would not usually break things, but we feel it is inefficient with little practical payback.
4) Will I be able to build my Help system without any restrictions from Clear Case when the files are checked out? Will the new source files be easy to check in when they are generated?
Kind of and No, respectively, if you work on your projects directly in Clearcase.
We believe the work involved to daily check in and check out files is wasted. What is most important is to avoid lost work, while preserving actual versions of source that goes with a given version of product. Backup preserves workr environment.
We use Clearcase for source control, primarily to back up versioned source, but we do not use it as a daily mechanism for differentiating versions. What I mean by this is that writers do not work directly in Clearcase, and we do not overlay successive Versioned source - we store Versioned source in separate folders (version 1 in a separate folder than version 2).
Also our data store (Versioned Object Base - VOB) is totally separate from Engineering.
(If your data store is integrated with and versioned with the actual software, our method likely won't work for you. You may have no choice.)
We have found that we have more problems working directly in Clearcase (building help and PDFs remotely from inside Clearcase has caused problems) than by copying source out and working locally.
Typically, we copy out the previous published version of a source project to a local work area, and we establish a new folder in Clearcase for the version we are working on.
We use Frame for books and Flare for help currently.
During a project we periodically check in a version of our Frame files or Flare project, and at the end of the project we check-in the final version.
Our work areas are backed up nightly, so we cannot lose more a a day's work if a hard drive crashes or another disaster occurs.
What we do with our Flare projects to simplify check in and check out is that we zip the entire project and check in just one file. We do run the risk of a corrupted zip file, but like I said we have daily backups and multiple versions checked in so the risk is lessened (I won't say minimized). We have never had data loss on a Flare project.
We separate versions that we check in rather than overlaying version 2 projects on top of version 1.
We do this because pulling prior versions of projects from Clearcase is more difficult if you have them stacked on top of each other. It is easier and less confusing to have a folder that says Version 1 and contains only increments of version 1, and a separate folder that contains only version 2.
This method leaves a bigger footprint for sure, but disk space is cheap and plentiful in our neighborhood.
Part of the rationale is that Clearcase (at least as implemented by our Release Engineering) can't effectively diff binary files, and diffing doc source to find spelling and punctuation differences is a waste of time. Source control that diffs ascii program files makes sense. Diffing doc files doesn't.
I am sure that what I am saying is anathema to a source control professional, advocate, or zealot. It will never make best practices. But it is simple and effective, and we have not had any data loss. For us the bottom line is that because it is simpler, our writers, none of whom consider source control a religious calling, make fewer mistakes than occurred when we were checking stuff in file-by-file.
I hope this helps (and only tars slightly what little reputation I have).