NAME
Quiq::Cascm - Schnittstelle zu CA Harvest SCM
BASE CLASS
DESCRIPTION
Ein Objekt der Klasse stellt eine Schnittstelle zu einem CA Harvest SCM Server zur Verfügung.
SEE ALSO
METHODS
Konstruktor
new() - Instantiiere Objekt
Synopsis
$scm = $class->new(@attVal);
Attributes
- user => $user
-
Benutzername (-usr).
- password => $password
-
Passwort (-pw).
- credentialsFile => $file
-
Datei (Pfad) mit verschlüsseltem Benuternamen und Passwort (-eh). Diese Authentisierungsmethode ist gegenüber user und password aus Sicherheitsgründen vorzuziehen.
- hsqlCredentialsFile => $file
-
Wie credentialsFile, nur für das hsql-Kommando, falls hierfür eine andere Authentisierung nötig ist.
- broker => $broker
-
Name des Brokers (-b).
- projectContext => $project
-
Name des Projektes, auch Environment genannt (-en).
- viewPath => $viewPath
-
Pfad im Project (-vp).
- workspace => $workspace
-
Pfad zum (lokalen) Workspace-Verzeichnis.
- states => \@states
-
Liste der Stufen, bginnend mit der untersten Stufe, auf der Workspace-Dateien aus- und eingecheckt werden.
- udl => $udl
-
Universal Database Locator für die CASCM-Datenbank. Ist dieser definiert, wird die CASCM-Datenbank direkt zugegriffen, nicht über das Programm hsql.
- keepTempFiles => $bool (Default: 0)
-
Lösche Temporäre Dateien nicht.
- dryRun => $bool (Default: 0)
-
Führe keine ändernden Kommandos aus.
- verbose => $bool (Default: 1)
-
Schreibe Information über die Kommandoausführung nach STDERR.
Returns
Objekt
Description
Instantiiere ein Objekt der Klasse und liefere eine Referenz auf dieses Objekt zurück.
Externe Dateien
putFiles() - Füge Dateien zum Repository hinzu
Synopsis
$output = $scm->putFiles($package,$repoDir,@files);
Arguments
- $packge
-
Package, dem die Dateien innerhalb von CASCM zugeordnet werden.
- $repoDir
-
Zielverzeichnis innerhalb des Workspace, in das die Dateien kopiert werden. Dies ist ein relativer Pfad.
- @files
-
Liste von Dateien außerhalb des Workspace.
Returns
Konkatenierte Ausgabe der der checkout- und checkin-Kommandos (String)
Description
Kopiere die Dateien @files in das Workspace-Verzeichnis $repoDir und checke sie anschließend ein, d.h. füge sie zum Repository hinzu. Eine Datei, die im Workspace-Verzeichnis schon vorhanden ist, wird zuvor ausgecheckt.
Mit dieser Methode ist es möglich, sowohl neue Dateien zum Workspace hinzuzufügen als auch bereits existierende Dateien im Workspace zu aktualisieren. Dies geschieht für den Aufrufer transparent, er braucht sich um die Unterscheidung nicht zu kümmern.
Workspace-Dateien
checkout() - Checke Repository-Dateien aus
Synopsis
$output = $scm->checkout($package,@repoFiles);
Arguments
- $package
-
Package, dem die ausgecheckte Datei (mit reservierter Version) zugeordnet wird.
- @repoFiles
-
Liste von Workspace-Dateien, die ausgecheckt werden.
Returns
Ausgabe des Kommandos (String)
Description
Checke die Workspace-Dateien @repoFiles aus und liefere die Ausgabe des Kommandos zurück.
checkin() - Checke Workspace-Datei ein
Synopsis
$output = $scm->checkin($package,$repoFile);
Arguments
- $package
-
Package, dem die neue Version der Datei zugeordnet wird.
- $repoFile
-
Datei innerhalb des Workspace. Der Dateipfad ist ein relativer Pfad.
Returns
Ausgabe des Kommandos (String)
Description
Checke die Workspace-Datei $repoFile ein, d.h. übertrage ihren Stand als neue Version ins Repository, ordne diese dem Package $package zu und liefere die Ausgabe des Kommandos zurück.
versionNumber() - Versionsnummer Repository-Datei
Synopsis
$version = $scm->versionNumber($repoFile);
Arguments
Returns
Versionsnummer (Integer)
versionInfo() - Versionsinformation zu Repository-Datei
Synopsis
$info = $scm->versionInfo($repoFile);
Arguments
Returns
Ausgabe des Kommandos (String)
Description
Ermittele die Versionsinformation über Datei $repoFile und liefere diese zurück.
deleteVersion() - Lösche Repository-Datei
Synopsis
$output = $scm->deleteVersion($repoFile);
Arguments
Returns
Ausgabe des Kommandos (String)
Description
Lösche die höchste Version der Repository-Datei (Item) $repoFile. Dies geht nur, wenn sich diese Version auf der untersten Stufe (Entwicklung) befindet.
findItem() - Zeige Information über Item an
Synopsis
$tab = $scm->findItem($namePattern);
Arguments
Returns
removeItems() - Lösche Items
Synopsis
$output = $scm->removeItems($package,@repoFile);
Arguments
- @repoFiles
-
Die Pfade der zu löschenden Repository-Dateien.
- $package
-
Package, in das die Löschung eingetragen wird.
Returns
Ausgabe des Kommandos (String)
Description
Erzeuge neue Versionen der Items @repoFiles, welche die Items als zu Löschen kennzeichnen und trage diese in das Package $package ein. Wird das Package promotet, werden die Items auf der betreffenden Stufe gelöscht.
Packages
createPackage() - Erzeuge Package
Synopsis
$output = $scm->createPackage($package);
Arguments
Returns
Ausgabe des Kommandos (String)
Description
Erzeuge Package $package und liefere die Ausgabe des Kommandos zurück.
deletePackage() - Lösche Package
Synopsis
$scm->deletePackage($package);
Arguments
Returns
Ausgabe des Kommandos (String)
Description
Lösche Package $package und liefere die Ausgabe des Kommandos zurück.
renamePackage() - Benenne Package um
Synopsis
$scm->renamePackage($oldName,$newName);
Arguments
Returns
Ausgabe des Kommandos (String)
Description
Benenne Package $oldName in $newName um und liefere die Ausgabe des Kommandos zurück.
switchPackage() - Übertrage Item in anderes Paket
Synopsis
$output = $scm->switchPackage($stage,$fromPackage,$toPackage,@files);
Arguments
- $stage
-
Stufe (stage), auf der sich die Packete befinden.
- $fromPackage
-
Name des Quellpakets (from package).
- $toPackage
-
Name des Zielpakets (to package).
- @files
-
Dateien (versions), die übertragen werden sollen.
Returns
Ausgabe des Kommandos (String)
Description
Übertrage die Dateien @files von Paket $fromPackage in Paket $toPackage.
promote() - Promote Packages
Synopsis
$scm->promote($state,@packages);
Arguments
Returns
Ausgabe des Kommandos (String)
Description
Promote die Package @packages von der Stufe $state auf die darüberliegende Stufe und liefere die Ausgabe des Kommandos zurück.
demote() - Demote Packages
Synopsis
$scm->demote($state,@packages);
Arguments
Returns
Ausgabe des Kommandos (String)
Description
Demote die Packages @packages der Stufe $state auf die darunterliegende Stufe, und liefere die Ausgabe des Kommandos zurück.
demoteToBase() - Demote Packages auf die unterste Stufe
Synopsis
$scm->demoteToBase(@packages);
Arguments
Returns
Ausgabe des Kommandos (String)
Description
Demote die Packages @packages auf die unterste Stufe und liefere die Ausgabe des Kommandos zurück. Die Packages müssen sich alle auf der gleichen Ausgangsstufe befinden, sonst wirft die Methode eine Exception.
packageState() - Stufe des Pakets
Synopsis
$state = $scm->packageState($package);
Arguments
Returns
Description
Liefere die Stufe $state, auf der sich Package $package befindet.
listPackages() - Liste aller Pakete
Synopsis
$tab = $scm->listPackages;
Returns
- @packages | $packageA
-
Liste aller Packages (Array of Arrays). Im Skalarkontext eine Referenz auf die Liste.
Description
Liefere die Liste aller Packages.
Workspace
sync() - Synchronisiere Workspace mit Repository
Synopsis
$scm->sync;
Description
Bringe den Workspace auf den Stand des Repository und liefere die Ausgabe des Kommandos zurück.
States
states() - Liste der Stufen
Synopsis
@states | $stateA = $scm->states;
Database
sql() - Führe SQL aus
Synopsis
$tab = $scm->sql($sql);
$tab = $scm->sql($file);
Arguments
Returns
Ergebnismengen-Objekt (Quiq::Database::ResultSet::Array)
Description
Führe ein SELECT-Statement gegen die CASCM-Datenbank aus und liefere ein Ergebnismengen-Objekt zurück. Das SELECT-Statement kann als String $sql übergeben werden oder sich in einer Datei $file befinden.
Privat
credentialsOptions() - Credential-Optionen
Synopsis
@arr = $scm->credentialsOptions;
Description
CASCM kennt mehrere Authentisierungsmöglichkeiten, die sich durch Aufrufoptionen unterscheiden. Diese Methode liefert die passenden Optionen zu den beim Konstruktor-Aufruf angegebenen Authentisierungs-Informationen. unterschieden werden:
Authentisierung durch Datei mit verschlüsselten Credentials (-eh)
Authentisiertung durch Benutzername/Passwor (-usr, -pw)
Bevorzugt ist Methode 1, da sie sicherer ist als Methode 2.
runCmd() - Führe Kommando aus
Synopsis
$output = $scm->runCmd($cmd,$c);
Arguments
Returns
Description
Führe das CA Harvest SCM Kommando $cmd mit den Optionen des Kommandozeilenobjekts $c aus und liefere den Inhalt der Ausgabedatei zurück.
runSql() - Führe SQL-Statement aus
Synopsis
$tab = $scm->runSql($sql);
Arguments
Returns
Ergebnismengen-Objekt (Quiq::Database::ResultSet::Array)
Description
Führe SELECT-Statement $sql auf der CASCM-Datenbank aus und liefere die Ergebnismenge zurück. Ist ein UDL definiert (s. Konstruktoraufruf) wird die Selektion direkt auf der Datenbank ausgeführt, andernfalls über das CASCM-Kommando hsql.
VERSION
1.135
AUTHOR
Frank Seitz, http://fseitz.de/
COPYRIGHT
Copyright (C) 2019 Frank Seitz
LICENSE
This code is free software; you can redistribute it and/or modify it under the same terms as Perl itself.