Question

Je recherche une commande ClearCase qui répertorie tous les éléments visibles dans ma vue actuelle, mais PAS une étiquette particulière leur est appliquée.

Par exemple, LABEL_X est appliqué à la plupart des éléments visibles dans mon affichage. Je veux une liste des éléments qui n'ont pas LABEL_X .

Je dois évidemment utiliser cleartool find , mais la page de manuel d'utilisation et ClearCase me laisse perplexe quant à la manière de construire une requête comme celle-ci.

Était-ce utile?

La solution

Cela devrait fonctionner:

ct find -all -ele '! lbtype_sub(LABEL_X)' -print
ct find -ele '! lbtype_sub(LABEL_X)' -print

Notes:

  • ct signifie cleartool
  • Syntaxe Unix ici (pour Windows, remplacez les guillemets simples par des guillemets doubles)
  • méfiez-vous de l'espace entre ! et lbtype_sub (dans Winodws, vous n'avez pas besoin d'espace)
  • -ele très IMPORTANT pour obtenir une seule occurrence d'un fichier donné (et non toutes les versions d'un fichier correspondant à un critère)

-ele limite la recherche aux éléments et non aux versions (cela déclencherait beaucoup plus résultats avec les versions concernées ...)

-all liste tous les éléments inclus " supprimé " (c’est-à-dire "non référencées").
La deuxième ligne répertorie uniquement les éléments visibles (dans la vue actuelle)

Vous devez exécuter ces deuxièmes lignes de commande sur le sous-répertoire de votre choix dans un ClearCase donné (instantané ou vue dynamique): tous les fichiers de ce sous-répertoire (et sous-sous-répertoires ...) correspondant au cercle sélectionné être listé.

Avertissements:

    Les
  • fichiers et les répertoires sont répertoriés. Si vous souhaitez uniquement des fichiers, ajoutez -type f à la requête:

    ct trouver le type f -ele '! lbtype_sub (LABEL_X)' -print

  • ce qui est affiché est le chemin étendu pour les éléments, c’est le nom du fichier suivi de @@ .

Pour répertorier uniquement le nom sans @@ , utilisez ' -nxn ' (aucune option de nom de chemin étendu)

ct find -nxn -ele '!lbtype_sub(LABEL_X)' -print

Une autre façon plus complexe mais aussi plus complète de ne répertorier que le nom sans @@ consiste à utiliser descr -fmt . Par exemple:

ct find . -ele "!lbtype_sub(LABEL_X)" -exec "cleartool descr -fmt \"%En %d\n\" \"%CLEARCASE_PN%\""

ct find . -ele '! lbtype_sub(LABEL_X)' -exec 'cleartool descr -fmt "%En %d\n" "$CLEARCASE_PN"'

vous donnerait (dans Windows ou la syntaxe unix) la date et le nom des fichiers et des répertoires non étiquetés LABEL_X.

Avec cet affichage ' descr -fmt ', vous pouvez combiner n'importe quel type d'information et de présentation que vous souhaitez pour le résultat.

Autres conseils

Ci-dessus fonctionne, mais n'oubliez pas de spécifier -cview pour obtenir JUSTE la vue actuelle, sinon vous obtiendrez également des fichiers de toutes les autres vues.

Je devais utiliser les éléments suivants sur mon installation Linux Clearcase:

cleartool find -cview -all -version '\!lbtype(LABEL_X)' -print

La syntaxe du message de VonC ne fonctionnait pas correctement avec l'option "!". ne pas être échappé.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top