perl - Eliminar el script de ClearCase Views
(1)
(Este es un reenvío de una pregunta eliminada) (bajo petición)
¿Cuál es el mejor Script de borrado de ClearCase View? Encontré lo siguiente en http://www.cmcrossroads.com/forums?func=view&id=44045&catid=31 escrito por Yossi Sidi a continuación
Las 2 cosas que este guión falla son la eliminación de las entradas en el archivo session.dat para las vistas de CCRC y la limpieza del almacenamiento de vista del servidor y los directorios de archivos en caché.
Los pasos manuales se pueden encontrar aquí: 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: [email protected]
# 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;
(hmmm ... interesante aquí es que la codificación de colores stackoverflow se vuelve loca después de mini error Perl''s $ ''....)
Mencioné un script un poco detallado, pero que no eliminará ningún almacenamiento local y tampoco limpiará la sesión CCRC.dat:
nuke_view.pl
: puede usarlo para eliminar todas las vistas de una estación de trabajo (que puede que ya no esté disponible)
cleartool lsview -host myHostname -quick | xargs ccperl nuke_view.pl
La opción -quick
es muy importante para obtener rápidamente la lista de vistas para una estación de trabajo determinada.
## 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;
}
Los pasos adicionales necesarios para eliminar CCWeb Views se describen en esta nota técnica de IBM :
Nota: Para ClearCase 7.1.1.1 o 7.1.1.2, el archivo session.dat ya no se genera desde ClearCase 7.1.1.1 como resultado del APAR PM03334 : session.dat ya no necesita ser limpiado.
Elimine el almacenamiento de visualización y los archivos almacenados en la memoria caché almacenados en el servidor CCWeb.
De forma predeterminada,
view.stg
(CCRC / CCWeb view storage),view.dat
y los archivos en caché VOB se almacenan en la siguiente ubicación:
- Windows® :
C:/Program Files/Rational/ClearCase/var/ccweb/<user>/<view_tag>
- UNIX® / Linux® :
/var/adm/rational/clearcase/ccweb/<user>/<view_tag>
Retire la carpeta
<view_tag>
ubicada en la ubicación de arriba. Esto eliminará los archivos de almacenamiento de la vista,view.dat
y los archivos en caché de VOB y permitirá que el usuario cree una nueva vista con el mismo nombre de vista original.Nota: También puede ser necesario eliminar manualmente el espacio de trabajo de la vista si la vista todavía está presente en el cliente CCRC. Esto se puede hacer navegando al espacio de trabajo definido en el sistema del cliente (por defecto
C:/Documents and Settings/<user-name>/view_tag
) y eliminando el espacio de trabajo de la vista.
Esta ruta al espacio de trabajo se enumera en el archivo.dat
la sesión. La entrada se ve así:-workroot "c:/web_dev2"
. Esto puede ser útil en un caso en el que el usuario no usó la ubicación predeterminada.Las raíces de vista de CCRC también se almacenan en caché en un archivo en el cliente en el Perfil de usuario.
Verifique el siguiente archivo y elimine también la vista ya eliminada de esa lista.
C:/Documents and Settings/<user-name>/.ccase_wvreg