2009-03-11 5 views
2

Comment puis-je charger une ancienne version d'un répertoire dans une vue d'instantané UCM? Dans notre projet, un développeur a enregistré le code non compliqué et non compilable à ClearCase. Un autre développeur a mis à jour sa vue alors qu'il ne compilait pas de projet à cause du code non-compliqué des développeurs précédents. Donc le développeur veut seulement obtenir la version précédente du répertoire. Comment puis-je le faire en mode snahpshot et seulement pour un répertoire spécifique?ClearCase: Chargement de la version antérieure d'un répertoire spécifique?

Répondre

3

Une première possibilité serait d'essayer de sélectionner la version correcte du sous-répertoire pour revenir, comme:

element /path/to/directory /main/[branch]/[version] 

Mais ce serait une erreur simple, parce que:

  • étendu Les noms de chemin d'accès ne sont pas pris en charge dans la vue Snapshot, comme expliqué dans cette section SO question.

  • pour sélectionner le répertoire seul ne suffit pas (les fichiers seraient toujours choisis comme les versions les plus récentes disponibles sur le flux!)

Et de toute façon, qui aurait besoin d'être soigneusement ajouté en la spécification de configuration parce que:

  • vous ne pouvez pas ajouter une règle de sélection (élément ...) partout dans la spécification de configuration:
    • Si vous mettez cette règle à la fin, elle sera ignorée (à cause des règles de sélection précédentes qui sont choisies en premier)
    • si vous le mettez au début, cela fonctionnera jusqu'à la prochaine occurrence "setcs -stream" (ou la la prochaine fois que vous appuyez sur "Synchroniser avec le flux"). À ce moment, la spécification de configuration d'une vue UCM (instantané ou dynamique) est régénérée (en fonction de la configuration du flux) et remplace votre règle personnalisée.

Une solution possible serait de modifier vos spécifications de configuration de votre vue instantanée avec une règle basée sur le temps
(Il modifie le sens de l'étiquette de version spéciale LATEST, la règle sélectionne une branche la dernière version qui a été créé avant un moment donné;
voir 'cleartool man config_spec'):

# Add the following temporary rule only for your sub-directory and below 
# (hence the '...') 
element /aVob/myComponent/mySubDirectory/... .../STREAM_NAME/LATEST -time dd-Month-yyyy 

element "[02945650fb1411d68504000180bdc4b6=\aVob]/myComponent/..." .../STREAM_NAME/LATEST 
element "[02945650fb1411d68504000180bdc4b6=\aVob]/myComponent/..." FOUNDATION_BASELINE -mkbranch STREAM_NAME 
element "[02945650fb1411d68504000180bdc4b6=\aVob]/myComponent/..." /main/0 -mkbranch STREAM_NAME 

Juste testé dans une vue UCM snapshot: ça marche.
Adaptez le format de date à la date et à l'heure dont vous avez besoin pour rétablir ce sous-répertoire à l'état approprié.

+0

J'ai supprimé ma réponse car elle était erronée et incomplète. J'ai maintenant appris un peu plus sur les vues UCM - jamais utilisé auparavant. Merci. –

+0

@Kristo: pas de problème, votre suggestion initiale était intéressante, mais pas adaptée à celle présentée dans la question. J'ai reformulé ma réponse pour * ne * pas mentionner votre réponse initiale;) – VonC

+0

@VonC Vous êtes mon héros ClearCase :) Merci à vous deux. – mcaaltuntas

Questions connexes