Создание новой структуры подкаталогов в ClearCase? - PullRequest
4 голосов
/ 06 января 2009

Я новичок в ClearCase и до сих пор привык к SVN. Поэтому я немного запутался в шагах, которые необходимо предпринять для создания новой структуры каталогов, содержащей несколько файлов для ClearCase.

Итак, скажем, например, в ClearCase существует существующая структура каталогов:

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

Если я хочу добавить в эту структуру новый подкаталог ChildDirectory5, который будет содержать ряд других файлов, как мне поступить? Из того, что я читал, мне нужно сначала проверить родительский каталог, а затем использовать команду mkelem для создания каждого подкаталога и файла.

Однако я уже создал необходимые файлы и каталоги на своем локальном компьютере, поэтому мне просто нужно как-то проверить их в ClearCase. С SVN все, что мне нужно было бы сделать, это скопировать родительскую папку в извлеченное хранилище и выполнить последовательность команд add & commit.

Ответы [ 3 ]

5 голосов
/ 07 января 2009

Как объяснено в Как я могу использовать ClearCase для рекурсивного «добавления к управлению исходным кодом…»? , вы должны использовать clearfsimport, который делает то, что вы говорите (извлечение родительских каталогов, mkelem для элементов)

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

Обратите внимание:

  • -preview опция: она позволит проверить, что произойдет, фактически ничего не делая.
  • '*' используется только в среде Windows, чтобы импортировать содержимое каталога
  • -nset option (см. Мой предыдущий ответ о nset).

Я бы порекомендовал динамическое представление для тех фаз инициализации, когда вам необходимо импортировать большое количество данных: вы можете быстро увидеть, как выглядит ваше представление, не внося никаких обновлений (например, «без обновления рабочей области») :
ClearCase позволяет получить доступ к данным двумя способами:

  • представление снимка (как и рабочее пространство SVN, за исключением того, что все файлы .svn фактически выводятся в хранилище представлений за пределами рабочего пространства)
  • динамический просмотр: все ваши файлы видны через сеть (мгновенный доступ / обновление)
2 голосов
/ 15 июля 2010

Я использую вариант этого скрипта (я называю его "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;
  }
}

Опция -mkpath в cleartool mkelem автоматически создает и / или извлекает все необходимые каталоги.

Для этого скрипта -nodo будет просто выводить команды, а -exclude позволит вам указать шаблон, для которого любой файл, соответствующий ему, будет исключен.

Обратите внимание, что Getopt :: Attribute не является частью стандартного дистрибутива Perl, но доступен на ближайшем к вам зеркале CPAN.

1 голос
/ 06 января 2009

Вы должны импортировать вашу локальную структуру каталогов. Команда: clearfsimport .

...