2016-02-06 4 views
1

J'essaie d'exécuter le code suivant, mais la commande #error 1 a obtenu à startview et la commande #error 2 dans desc.ClearCase.ClearTool renvoie Aucune erreur de contexte de vue disponible

use Win32::OLE; 
    $ct = Win32::OLE->new('ClearCase.ClearTool') or die "Could not create ClearTool object\n"; 
    $view = "ccadm01_UARK_DEV"; 
    $output = $ct->CmdExec("pwv") or die("Cleartool returned error: ", Win32::OLE->LastError(), "\n"); 
    print ("pwv \$output = $output\n"); 

# error 1 : cleartool return error 0 
    $output = $ct->CmdExec("startview ccadm01_UARK_DEV") or die("Cleartool returned error: ", Win32::OLE->LastError(), "\n"); 

    $CWD = $view_dir; 
    print("Current directory: $CWD\n"); 

# error 2: No view context available 
    $output = $ct->CmdExec("describe -fmt \"%[versions]Cp\" activity:USR0200004985\@\\Unix_PVOB") or die("Cleartool returned error: ", Win32::OLE->LastError(), "\n"); 
    print ("desc \$output = $output\n"); 

Pour #error 1, j'ai essayé la même commande de DOS, cela fonctionne.

Répondre

0

Vous devez vous assurer que votre $view est un tag de vue dynamique valide pour que cleartool startview fonctionne.
(assurez-vous not use cleartool setview, as it spawns a subshell)

également si elle renvoie l'erreur 0, vous pouvez supposer qu'il a travaillé: CAL peut retourner une « erreur », mais l'état 0 devrait signifier la commande a été exécutée.

Une erreur différente de 0 signifie que quelque chose s'est mal passé.

Et vous devez cd en ce point de vue (ou /view/<viewTag>m:\<viewTag>) pour un cleartool descr à travailler.
Celui-là, exécuté dans le mauvais dossier, est censé échouer, d'où "erreur 2".


Les OP Jirong Hu des points in the comments à Using Perl with Rational ClearCase Automation Library (CAL) et this script as an example.

+0

J'ai même changé à $ ct-> CmdExec ("startview ccadm01_UARK_DEV"), toujours la même erreur, la balise de vue est correcte et la même commande peut être exécutée depuis la ligne de commande cleartool. la 2ème commande j'utilise $ CWD = $ view_dir; pour cd dans la vue, parce que les backticks ne fonctionne pas trop. Cette licence d'accès client est-elle toujours prise en charge dans CCCQ v8? –

+0

@Jir essayez aussi un pwv, pour vérifier où vous êtes. En outre, avant votre démarrage, assurez-vous que la vue est arrêtée, juste pour vérifier si la vue de démarrage CAL fonctionne. – VonC

+0

Sortie pwc dans None. cleartool startview peut fonctionner plusieurs fois même s'il a démarré. Je cours toujours ceci juste pour m'assurer. Oh, j'avais tort à propos de la ligne de commande, elle échoue aussi à partir de la ligne de commande DOC, le code et la sortie sont indiqués ci-dessous: je l'ai mis en réponse. –