4 votes

Création d'une nouvelle structure de sous-répertoire dans ClearCase ?

Je suis un nouveau venu dans ClearCase et jusqu'à présent, j'étais habitué à SVN. Par conséquent, je suis un peu perdu sur les étapes à suivre pour créer une nouvelle structure de répertoire contenant plusieurs fichiers dans ClearCase.

Ainsi, disons par exemple qu'il y a une structure de répertoire existante dans ClearCase comme suit :

\ParentDirectory
    \ChildDirectory1
        \File1
        \File2
    \ChildDirectory2
    \ChildDirectory3
        \File1
    \ChildDirectory4

Si je veux ajouter un nouveau sous-répertoire à cette structure, ChildDirectory5, qui contiendra un certain nombre d'autres fichiers, comment dois-je procéder ? D'après ce que j'ai lu, je dois d'abord vérifier le répertoire parent, puis utiliser la commande mkelem pour créer chaque sous-répertoire et fichier.

Cependant, j'ai déjà créé les fichiers et répertoires nécessaires sur ma machine locale, il me suffit donc de les enregistrer dans ClearCase d'une manière ou d'une autre. Avec SVN, tout ce que j'aurais eu à faire était de copier le dossier parent dans un repo extrait et de faire une séquence de commandes add & commit sur celui-ci.

5voto

VonC Points 414372

Comme expliqué dans Comment puis-je utiliser ClearCase pour "ajouter au contrôle de la source " de manière récursive ? vous devez utiliser clearfsimport qui fait ce que vous dites (vérifier les répertoires parents, mkelem pour les éléments).

clearfsimport -preview -rec -nset c:\sourceDir\ChildDirectory5 m:\MyView\MyVob\ParentDirectory

Notez les :

  • L'option -preview : elle permet de vérifier ce qui se passe sans faire quoi que ce soit.
  • '*' utilisé uniquement dans l'environnement Windows, afin d'importer le contenu d'un répertoire.
  • L'option -nset (voir mon réponse précédente sur nset).

Je recommande vision dynamique pour ces phases d'initialisation où vous devez importer beaucoup de données : vous pouvez rapidement voir à quoi ressemble votre vue sans faire de mise à jour (comme "sans mettre à jour votre espace de travail") :
ClearCase permet d'accéder aux données de deux manières :

  • vue snapshot (comme un espace de travail SVN, sauf que tous les .svn sont en fait externalisés dans un stockage de vue en dehors de l'espace de travail)
  • vue dynamique : tous vos fichiers sont visibles à travers le réseau (accès instantané/mise à jour)

2voto

jsegal Points 921

J'utilise une variante de ce script (je l'appelle "ctadd") :

#!/usr/bin/perl

use strict;
use Getopt::Attrribute;

(our $nodo : Getopt(nodo));
(our $exclude_pat : Getopt(exclude_pat=s));

for my $i (@ARGV) {
  if ($i =~ /\s/) {
    warn "skipping file with spaces ($i)\n";
    next;
  }
  chomp(my @files = `find $i -type f`);
  @files = grep !/~$/, @files;  # emacs backup files
  @files = grep !/^\#/, @files; # emacs autosave files
  if (defined($exclude_pat)) {
    @files = grep !/$exclude_pat/, @files;
  }
  foreach (@files) {
    warn "skipping files with spaces ($_)\n" if /\s/ ;
  }
  @files = grep !/\s/, @files;
  foreach (@files) {
    my $cmd = "cleartool mkelem -nc -mkp \"$_\"";
    print STDERR "$cmd\n";
    system($cmd) unless $nodo;
  }
}

L'option -mkpath de cleartool mkelem créera et/ou extraira automatiquement tous les répertoires nécessaires.

Pour ce script, -nodo lui fera simplement sortir les commandes, et -exclude vous permettra de spécifier un motif pour lequel tout fichier qui y correspond sera exclu.

Notez que Getopt::Attribute ne fait pas partie de la distribution standard de Perl, mais il est disponible sur un miroir CPAN près de chez vous.

1voto

philant Points 17345

Vous devez import la structure de votre répertoire local. La commande est clearfsimport .

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X