Удалить скрипт ClearCase Views - PullRequest
2 голосов
/ 30 ноября 2010

(Это репост удаленного вопроса) (по запросу)

Какой лучший сценарий удаления ClearCase View?Я обнаружил следующее на http://www.cmcrossroads.com/forums?func=view&id=44045&catid=31, написанном Йосси Сиди ниже

2 вещи, которые пропускает этот скрипт, это удаление записей в файле session.dat для представлений CCRC и очистка хранилища представлений сервераи каталоги кэшированных файлов.

Шаги для ручного управления можно найти здесь: http://www -01.ibm.com / support / docview.wss? uid = swg21172246

rmview.pl
==============
#
# rmview.pl
#
# This script is used to delete a view..
# ---------------------------------------------------
#   Fetching the UUID of the view :
# Cleartool describe -long vob:vob_name (lists all views)
#    -or-
# cleartool lsview -long <View_name>
# ------------------------------------------------------------------------
# Remove sequence:-
#   Cleartool rmview -force -uuid <uuid> (from a VIEW contents directory)
#   Cleartool unreg -view -uuid <uuid>
#   Cleartool rmtag -view VIEW_NAME
#
# Arguments:
# view tag name :
#
# ASSUMED: You must be in a VOB with a view set when this tool
# is used.
#
# Author: Yossi Sidi
# email: yossis@corrigent.com
# URL: [url=http://www.corrigent.com" target="_blank]http://www.corrigent.com[/url]
# Date: Sep. 14, 2003
############################################################
# History: 14/10/03 : Created for Corrigent
############################################################


########################
######## MAIN ########----------------------------------------------------------------
########################


$DIV1="*************************************************************n";


$USAGE=""USAGE ccperl.exe $0 view tag name \n EXAMPLE: ccperl.exe $0 ""My_view"" "";

if ($#ARGV == 0)
{
$view_name = $ARGV[0];
}
else
{
`clearprompt yes_no -mask abort -default abort -pre -prompt $USAGE`;
exit 1;
}
select STDOUT;
$| = 1; # Do not buffer the STDOUT file so ccperl prog.pl >out.txt
# will have the correct sequence of report lines
printf ($DIV1);
printf ("View Propertiesn");
printf (" View Tag: $view_namen");
printf ($DIV1);
printf ("n");

$COMMAND = "cleartool lsview -l $view_name";
@dl = `"$COMMAND"`;
$view_uuid = "";
foreach $dl (@dl) {
chomp ($dl);
printf ("$dln");
if ( $dl =~ /^View uuid: / ) {
$view_uuid = $'; #' reset syntax highlighter
}
}
if ( $#dl > 0 ) {
#   Cleartool rmview -force -all -uuid <uuid> (from a VIEW contents directory)
#   Cleartool unreg -view -uuid <uuid>
#   Cleartool rmtag -view VIEW_NAME
$rmview = "cleartool rmview -force -all -uuid $view_uuid";
$unreg = "cleartool unreg -view -uuid $view_uuid";
$rmtag = "cleartool rmtag -view $view_name";
printf ($DIV1);
printf ("Removing commandsn");
printf ($DIV1);
printf ("n");
printf ("n$rmview n");
@dl = `"$rmview"`;
printf ("n$unreg n");
@dl = `"$unreg"`;
printf ("n$rmtag n");
@dl = `"$rmtag"`;
}
exit 0;

(хммм ... интересно, что цветовая кодировка стека переполняется после "Perl's мини-ошибки" $ '....)

1 Ответ

2 голосов
/ 01 декабря 2010

Я упомянул немного подробный скрипт, но он не удалит локальное хранилище и не очистит сессию CCRC.dat:

nuke_view.pl: вы можете использовать его для удаления всехвиды с рабочей станции (которые могут быть недоступны)

cleartool lsview -host myHostname -quick | xargs ccperl nuke_view.pl

Опция -quick очень важна для быстрого получения списка видов для данной рабочей станции.

## This script should be used to cleanup a view when 'ct rmview' will not
## work (such as when the viewstore directory has been deleted.
##
## Note: The view storage directory will have to manually deleted if it still exists.

use strict;

#sub NukeView();
#sub DoIt();

foreach(@ARGV) {
        NukeView($_);
}


##############################################################
sub NukeView {

        my $view2del = $_[0];

        print "Processing $view2del...\n";

        my @lines = `cleartool lsview -l $view2del`;

        my $tag;
        my $uuid;
        foreach(@lines) {
                chomp;
                $tag = $1 if /^Tag: (\S+)/;
                $uuid = $1 if /^View uuid: (\S+)/;

                s/^/\t/;

                print "$_\n";
        }

        if ( $tag eq '' or $uuid eq '' ) {
                print "Error! $view2del: unable to get tag and/or uuid\n";
                return 0;
        }

        my $err_count = 0;

        print "\tremoving tag...\n";
        my $cmd = "cleartool rmtag -view $tag";
        $err_count += 1 if DoIt($cmd);

        print "\tunregistering view storage...\n";
        $cmd = "cleartool unreg -view -uuid $uuid";
        $err_count += 1 if DoIt($cmd);

        print "\tremoving view references...\n";
        $cmd = "cleartool rmview -force -avobs -uuid $uuid";
        $err_count += 1 if DoIt($cmd);

        if ( $err_count == 0 ) {
                print "Success! removed view $view2del\n";
        }
        else {
                print "Error! errors occured while removing $view2del\n";
        }
}

#############################################
sub DoIt {
        my $ret = system($_[0]) / 256;
        print "Error! cmd failed: $_[0]\n" if $ret != 0;
        return $ret;
}

Дополнительные шаги, необходимые для удаления CCWeb Views, описаны в этом IBM technote :

Примечание: Для ClearCase 7.1.1.1 или 7.1.1.2 файл session.dat больше не генерируется из ClearCase 7.1.1.1 в результате APAR PM03334 : сессия.dat больше не нуждается в очистке.

Удалите хранилище представлений и кэшированные файлы, хранящиеся на сервере CCWeb.

По умолчанию view.stg (CCRC / CCWeb view storage), view.dat и кэшированные файлы VOB хранятся в следующем месте:

  • Windows® : C:\Program Files\Rational\ClearCase\var\ccweb\<user>\<view_tag>
  • UNIX® / Linux® : /var/adm/rational/clearcase/ccweb/<user>/<view_tag>

Удалите папку <view_tag>, расположенную в расположении выше.Это удалит файлы хранилища представления, view.dat и кэшированные файлы VOB и позволит пользователю создать новое представление, используя то же / исходное имя представления.

Примечание. Может также потребоваться вручную удалить рабочую область представленияесли представление все еще присутствует на клиенте CCRC.Это можно сделать, перейдя к определенной рабочей области в клиентской системе (по умолчанию C:\Documents and Settings\<user-name>\view_tag) и удалив рабочую область просмотра.
Этот путь к рабочей области указан в файле сеанса .dat.Запись выглядит так: -workroot "c:/web_dev2".Это может оказаться полезным в случае, когда пользователь не использовал местоположение по умолчанию.

Корни представления CCRC также кэшируются в файле на клиенте в профиле пользователя.
Проверьте следующий файл и удалитеуже удален вид из этого списка.

C:\Documents and Settings\<user-name>\.ccase_wvreg
...