2010-06-16 6 views
2

Dans une spécification de configuration ClearCase, est-il possible de sélectionner des versions basées sur élément attribtres (pas version attributs)? Par exemple:Sélection de la spécification ClearCase basée sur l'attribut d'élément

element * ...{SOME_ELEM_ATTR==SOME_VALUE&&lbtype(MY_LABEL1)} 

Cela ne fonctionne pas parce que la dernière partie de la spécification « élément » est une version sélecteur , qui ne porte que sur les attributs de version. Ce que j'essaie de faire est de partitionner mes fichiers en deux classes ou plus, et avoir différentes lignes "élément" s'appliquent à différentes classes de fichiers. J'ai essayé de marquer tous les éléments d'une classe avec un attribut, mais je suis tombé dans une impasse en essayant de baser la sélection sur celle-ci dans la spécification de configuration. La seule façon que je peux voir à faire ce genre de chose est de mettre tous les fichiers d'une classe dans un endroit et utiliser la deuxième construction (le « modèle ») pour différencier:

element .../all_class1_files/... MY_LABEL1 

mais cela est vraiment laid parce que vous devez déplacer tous les fichiers d'une classe en un seul endroit, ou avoir une spécification de configuration géante listant tous les répertoires et/ou fichiers individuels.

Merci à l'avance ...

Ray

Répondre

0

Une première solution serait de remplacer les critères d'attributs par une branche.
De cette façon, vous étiez plus facilement capable d'étiqueter tous les fichiers d'une branche ou d'une autre, au lieu de "tous les fichiers avec un attribut donné".

Autre que cette solution de contournement, vous trouverez certains find command based on attribute here (ou dans le man page).
Vous pouvez ensuite combiner un find query avec une directive "-exec" pour placer l'étiquette souhaitée.
De cette façon, vous n'avez pas à jouer avec le config spec syntax (qui peut ne pas supporter les critères de sélection exacts que vous recherchez).


Je n'ai pas testé, mais vous pouvez essayer

element * ...{SOME_ELEM_ATTR==SOME_VALUE && lbtype_sub(MY_LABEL1)} 

, parce que lbtype_sub est un élément, branche et sélecteur Version (alors que lbtype est juste un sélecteur de version).
Cependant, puisque lbtype ne semble pas faire partie des critères de configuration, je doute qu'il puisse fonctionner dans cette configuration de configuration.

+0

Merci, j'apprécie votre aide, VonC. La sélection par branche fonctionnera, mais c'est compliqué en raison du grand nombre de branches impliquées.Utiliser "find" pour marquer les fichiers n'est pas une option viable, car cela devrait être fait à chaque fois qu'une version est créée. Mais je pense que je peux être sur une bonne solution en utilisant la fonction de requête "trtype". –

+0

@Ray: intéressant. Si vous avez une solution viable, vous pouvez l'afficher ici (et sélectionnez-la comme solution officielle si vous le souhaitez) – VonC

0

Je pense que j'ai une bonne solution en utilisant "trtype" comme critère de sélection (semble être la seule fonction de requête qui hérite de l'élément à la version). Si les éléments classes 1 et Class2 ont factices déclencheurs Class1Files andClass2Files qui leur sont rattachés, respectivement, alors quelque chose comme

element * .../{trtype(Class1Files)&&lbtype(MY_LABEL1)} 
element * .../{trtype(Class2Files)&&lbtype(MY_LABEL2)} 

devrait faire l'affaire. Cela sélectionne les fichiers dans Class1 avec MY_LABEL1 et dans Class2 avec MY_LABEL2. Je n'ai pas encore essayé cela, mais je vais vous dire comment cela fonctionne.

Questions connexes