Создаете новую структуру подкаталогов в ClearCase?
-
03-07-2019 - |
Вопрос
Я новичок в ClearCase и до сих пор привык к SVN.Поэтому я немного не понимаю, какие шаги мне нужно предпринять, чтобы создать новую структуру каталогов, содержащую несколько файлов для ClearCase.
Итак, скажем, в ClearCase существует следующая структура каталогов:
\ParentDirectory
\ChildDirectory1
\File1
\File2
\ChildDirectory2
\ChildDirectory3
\File1
\ChildDirectory4
Если я хочу добавить в эту структуру новый подкаталог ChildDirectory5, который будет содержать ряд других файлов, как мне это сделать?Судя по тому, что я прочитал, мне нужно сначала проверить родительский каталог, а затем использовать команду mkelem для создания каждого подкаталога и файла.
Однако я уже создал необходимые файлы и каталоги на своей локальной машине, поэтому мне просто нужно как-то проверить их в ClearCase.При использовании SVN все, что мне нужно было сделать, это скопировать родительскую папку в извлеченный репозиторий и выполнить для нее последовательность команд добавления и фиксации.
Решение
Как поясняется в Как я могу использовать ClearCase для рекурсивного «добавления в систему контроля версий…»?, вам нужно использоватьclearfsimport, который делает то, что вы говорите (проверьте родительские каталоги, mkelem для элементов)
clearfsimport -preview -rec -nset c:\sourceDir\ChildDirectory5 m:\MyView\MyVob\ParentDirectory
Обратите внимание :
- - вариант предварительного просмотра:это позволит проверить, что произойдет, ничего не делая.
- '*' используется только в среде Windows для импорта содержимого каталога.
- -nset опция (см. мой предыдущий ответ о нсет).
Я бы посоветовал динамический вид для тех этапов инициализации, когда вам необходимо импортировать много данных:вы можете быстро увидеть, как выглядит ваше представление, не делая никаких обновлений (например, «без обновления рабочей области»):
ClearCase позволяет получить доступ к данным двумя способами:
- представление моментального снимка (как рабочее пространство SVN, за исключением того, что все .svn фактически выводятся в хранилище представлений за пределами рабочего пространства)
- динамический вид:все ваши файлы видны через сеть (мгновенный доступ/обновление)
Другие советы
Я использую вариант этого сценария (я называю его "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 ( Я использую вариант этого сценария (я называю его "ctadd"):
<*>
Опция -mkpath в cleartool mkelem автоматически создает и / или извлекает все необходимые каталоги.
Для этого скрипта -nodo будет просто выводить команды, а -exclude позволит вам указать шаблон, для которого любой файл, который ему соответствует, будет исключен.
Обратите внимание, что Getopt :: Attribute не является частью стандартного дистрибутива Perl, но он доступен на зеркале CPAN рядом с вами.
)\n" if /\s/ ;
}
@files = grep !/\s/, @files;
foreach (@files) {
my $cmd = "cleartool mkelem -nc -mkp \" Я использую вариант этого сценария (я называю его "ctadd"):
<*>
Опция -mkpath в cleartool mkelem автоматически создает и / или извлекает все необходимые каталоги.
Для этого скрипта -nodo будет просто выводить команды, а -exclude позволит вам указать шаблон, для которого любой файл, который ему соответствует, будет исключен.
Обратите внимание, что Getopt :: Attribute не является частью стандартного дистрибутива Perl, но он доступен на зеркале CPAN рядом с вами.
\"";
print STDERR "$cmd\n";
system($cmd) unless $nodo;
}
}
Опция -mkpath в cleartool mkelem автоматически создает и / или извлекает все необходимые каталоги.
Для этого скрипта -nodo будет просто выводить команды, а -exclude позволит вам указать шаблон, для которого любой файл, который ему соответствует, будет исключен.
Обратите внимание, что Getopt :: Attribute не является частью стандартного дистрибутива Perl, но он доступен на зеркале CPAN рядом с вами.
Вы должны импортировать свою локальную структуру каталогов. Это команда "rel =" nofollow noreferrer "> clearfsimport . Р>