2009-03-25 15 views
3

Par exemple, au lieu d'écrire ce qui suit:Est-il possible d'utiliser des variables dans une spécification de configuration ClearCase?

element * .../my_branch_01/LATEST 
element * .../base_branch/LATEST -mkbranch my_branch_01 

je voudrais écrire quelque chose comme ceci:

MY_BRANCH=my_branch_01 
element * .../%MY_BRANCH%/LATEST 
element * .../base_branch/LATEST -mkbranch %MY_BRANCH% 

Est-ce même possible? Quelle est la syntaxe correcte?

+0

Juste testé et fixé la base de règles de sélection sur un attribut: il fonctionne et vous permet de sélectionner une branche en fonction de sa valeur d'attribut. L'attribut devient votre variable. Mais il ne peut pas être utilisé pour la directive mkbranch. – VonC

Répondre

3

La seule façon native de le faire dans ClearCase est d'utiliser attribut dans un config-spec.

Selon les règles version selector, vous pouvez faire une « sélection par requête » règle, par exemple, sur un attribut:

element * ...{MY_ATTRIBUTE_NAME=="aValue"} 

choisirait la version LATEST sur une branche avec un attribut « MY_ATTRIBUTE_NAME » avec 'aValue' dedans. Cela signifie que vous devez modifier la valeur de l'attribut sur l'ancienne branche, la placer sur la nouvelle branche, 'cleartool setcs', et vous devriez avoir un nouveau contenu basé sur une nouvelle sélection de version.

Pas très simple, mais il pourrait travailler, , sauf pour la partie mkbranch (qui a besoin d'un nom fixe).


En ce qui concerne GeekCyclist's answer, quelques commentaires:

La solution pour inclure une spécification de configuration commune peut fonctionner pour solution de base ClearCase, mais:

  • besoin d'être dans une action disponible par tous le développeur concerné
  • le setcs est en effet nécessaire pour Ccuses the view_server pour vider ses caches et réévaluer la configuration actuelle sp ec, qui est stocké dans le fichier config_spec dans le répertoire de stockage de vue.Cela comprend:
    • règles de temps à évaluer avec les spécifications non absolue (par exemple, maintenant, mardi)
    • Réévaluer règles -config, peut-être sélectionner différents objets dérivés que précédemment
    • fichiers Relecture nommés dans include règles
  • tous les autres développeurs doivent être notifiés lorsque la commune comprenait des changements de fichier de spécification de configuration (il n'y a pas inclus dans la notification native ClearCase)

Si vous avez besoin d'un "environnement" (c.-à-d. une "vue" ou un espace de travail) avec un contenu variable (selon une branche différente), vous devez définir un lien symbolique (ou un substitut Windows) pointant vers différentes vues (chacune avec leur propre spécification de configuration)

, il vous suffit de modifier le lien (ou le chemin d'accès) pour modifier la spécification de configuration associée à un chemin fixe.

1

Cela fait un moment que je travaillais dans ClearCase (nous sommes passés à Subversion), mais si je me souviens bien, il n'y a aucun moyen de faire ce natif à ClearCase.

Vous pouvez utiliser ou écrire un générateur de script qui créer votre fichier de spécification et inclure dans la spécification réelle:

element * CHECKEDOUT 
include scripted_file_output 

Lancez ensuite

cleartool setcs -current 

Le problème avec cette approche est que Je crois que la spécification d'include devrait être régénérée et les setcs de cleartool s'exécutent quand vous changez la valeur de MY_BRANCH.