r7 - 26 May 2008 - 17:04:19 - MarcGirodCmWiki  >  CM Web  >  ConfigurationManagement > SoftwareConfigurationManagement > MarcGirod  >  BccFaq1_1_2

Base ClearCase FAQ 1.1.2: setview in scripts doesn't work

Running "setview" without the "-exec" flag starts a new shell.

The following contents was found previously:

Generally, using "setview -exec" is a deprecated way of doing things. It will not work on NT, and it will not work in snapshot views. Instead, one should use view extended path names.

The word deprecated is wrong, and the advice disputable.
Using a view extended path to call a script will in turn not work on unix, in the general case. More precisely, it will fail as soon as the script attempts to access anything from a vob, with an absolute path without this same view extended path (which would work using a setview context). This could be an included script item (e.g. a perl library), or an other tool run from an absolute path (possibly via a soft link).

Theoretical insight

What setview was meant to provide is an essential SCM feature: referential transparency, and especially decoupling the identification of logical resources (configuration items), from the selection of instances, out of sets of available ones, to represent those in the current software configuration.

The fact that this feature fails to work in every context, should not drive one to refrain from using it where it does work (throw the baby with the bath water). Retaining it is worth examining the options available.

The difference between NT and Unix is not so trivial, and must be understood: in unix, there is one single root, which chroot can change. Not so on Windows, where the closest equivalent will only apply to one drive.

When writing scripts, it is a good idea to normalize path names to the view root, which can be obtained by running "cleartool pwv -root". Note that this returns an empty string when run in a setview context. Therefore, you can safely append an absolute pathname beginning with the vob tag to the value returned by "cleartool pwv -root".

The best idea when writing (non trivial) scripts, is to go for a framework, such as ClearCase::CtCmd or ClearCase::Argv, and to localize, and thus hide from the rest of the script, this difference between unix and Windows (where you'll have, one way or an other, to use a drive letter)...

setview should work on unix in CtCmd and in ClearCase::Argv. Without the former, the latter (v1.26) will hang on setview, due to a bug in cleartool interactive mode with the -status option (reported to IBM: RFE 423). This problem is worked around in a forthcoming version of ClearCase::Argv —1.34.

Edit | WYSIWYG | Attach | Printable | Raw View | Backlinks: Web, All Webs | History: r7 < r6 < r5 < r4 < r3 | More topic actions | key Log In
CM.BccFaq1_1_2 moved from CM.BccFaq1_2_2 on 14 May 2008 - 17:09 by MarcGirod - put it back
 
Copyright © 1998-2008 CM Crossroads LLC
Ideas, requests, problems regarding CmWiki?? Send feedback