Abfragebeispiel

Abfragebeispiel

Beispiele

$ lscm query --file "reviewer = 'Sue' and has_attr(graphics)"
Logo.java
$ lscm query --file "reviewer = 'Sue' or reviewer = 'Pete'"
AboutDialog.java
ProgressBar.java
$ lscm query --file "(reviewed = 'false' and reviewer = 'Pete') and in_baseline(f81d4fae-7dec-11d0-a765-00a0c91e6bf6)"
AboutDialog.java
$ lscm query --snapshot "has_attr('release')"
(5471) "JUnit Snapshot"
(5473) "Final build snapshot"
$ lscm query --stream "name matches 'JU*' and release='2.0'"
(5425) "JUnit" JUnit Project
$ lscm query --stream "has_read_access('accessgroup')"
(4052) "Stream A" Project X
(4100) "Stream B" Project Y
$ lscm query --stream "has_read_access('accessgroup', @3901)"
(4052) "Stream A" Project X
$ lscm query --stream "has_read_access('accessgroup', 'SCM - Access Group A')"
(4052) "Stream A" Project X

Abfragesyntax

Die allgemeine Abfrage unterstützt Folgendes:

  • Ausdruck und Ausdruck
  • ausdruck oder ausdruck
  • Attribut = Wert
  • has_attr(attribute)
  • Tags enthalten Tag

Ausdruck kann Kombinationen anderer Abfragefunktionen enthalten, die mithilfe von Rangfolgeoperatoren () gruppiert werden.

Jeder Artefakttyp unterstützt außerdem einige bestimmte Abfragefunktionen nur für diesen Typ. Der Dateityp unterstützt eine Funktion vom Typ in_baseline(UUID), die die Abfrage so einschränkt, dass nach Dateien innerhalb einer bestimmten Referenzversion gesucht wird. Wenn bei Verwendung der Abfragefunktion in_baseline kein Bereich angegeben wird, wird die gesamte Datenbank nach passenden Dateiversionen durchsucht.

Der Typ --stream unterstützt Folgendes:

  • in_projectarea(object identifier)
  • in_teamarea(object identifier)
  • name = literal name
  • name matches pattern
  • has_read_access(object identifier)

Der Typ --workspace unterstützt Folgendes:

  • name = literal name
  • name matches pattern
  • has_read_access(object identifier)

Der Typ --baseline unterstützt Folgendes:

  • in_workspace(object identifier)
  • in_stream(object identifier)
  • in_snapshot(object identifier)
  • for_component(object identifier)
  • name = literal name
  • name matches pattern

Der Typ --snapshot unterstützt Folgendes:

  • in_projectarea(object identifier)
  • in_teamarea(object identifier)
  • for_workspace(object identifier)
  • for_stream(object identifier)
  • name = literal name
  • name matches pattern

Der Typ --component unterstützt Folgendes:

  • in_workspace(object identifier)
  • in_stream(object identifier)
  • name = literal name
  • name matches pattern

Der Typ --file unterstützt Folgendes:

  • in_baseline('baseline UUID')

Beim Wert für die Objekt-ID handelt es sich um die UUID, den Aliasnamen oder den Literalnamen. Einer Aliasnummer muss ein kommerzielles A (@) vorangestellt werden. Der Wert literalname ist auch für die Funktion name = gültig. Der Musterwert für die "name matches"-Funktion ist eine Namenszeichenfolge, die Stern (* - entspricht einer beliebigen Anzahl an Vorkommen eines Wertes) und Fragezeichen (? - entspricht nur einem Vorkommen eines Wertes) enthalten kann.

Abfrage unter Verwendung von Attributwerten

Eine Abfragesyntax, die auf dem Attributwert basiert, sucht Artefakte im Repository mit diesem Attributwert. Diese Syntax weist die folgenden Argumente auf:

attribute name='attribute value'

Um alle Dateien und Verzeichnisse im Repository zu suchen, bei denen für das Attribut "release" der Wert "beta" festgelegt ist, verwenden Sie die folgende Abfrage:

$ lscm query --file "release='beta'"

Das Attribut "name" unterstützt eine Musterabgleichsfunktion. Dies ist die Syntax dieser Abfrage.

name matches pattern

Dabei ist "Muster" eine Namenszeichenfolge mit einem Stern (*), der einer beliebigen Anzahl an Vorkommen eines Wertes entspricht. Das Fragezeichen (?) entspricht einem einzigen Vorkommen eines Wertes.

Um alle Datenströme mit einem Namen zu finden, der mit "JU" beginnt, verwenden Sie diese Abfrage:

lscm query --stream "name matched 'JU*'"

Das Tagattribut unterstützt die Überprüfung von Teilwerten. Dies ist die Syntax dieser Abfrage.

tags contains "Teilattributwert"

Beim Teilattributwert handelt es sich um eine Zeichenfolge ohne Leerzeichen.

Verwenden Sie die folgende Abfrage, um alle Momentaufnahmen im Repository zu suchen, die mit dem Wert 'released' gekennzeichnet sind:

lscm query --snapshot "tags contains released"

Abfrage unter Verwendung von Funktionen

Eine Abfragesyntax, die auf einer Funktion basiert, sucht Artefakte im Repository, die den Anforderungen der Funktion entsprechen. Diese Syntax weist die folgenden Argumente auf:

function name('function_argument')

Verwenden Sie die folgende Syntax für die Funktion "has_attr":

has_attr('attribute name')

Diese Syntax weist die folgenden Argumente auf:

attribute name -Name des angepassten Attributs.

Verwenden Sie die folgende Syntax für die Funktion 'in_baseline':

in_baseline('baseline UUID')

Diese Syntax weist die folgenden Argumente auf:

baseline UUID -UUID der Referenzversion.

Verwenden Sie die folgende Syntax für die anderen Funktionen vom Typ in_ und for_:

in_projectarea( object identifier )
in_teamarea( object identifier )
in_workspace( object identifier )
in_stream( object identifier )
in_snapshot( object identifier )
for_component( object identifier )
for_workspace( object identifier )
for_stream( object identifier )

Diese Funktionen weisen die folgenden Argumente auf:

Objekt-ID - die UUID, der Aliasname oder der Literalname. An Aliasnummern muss als Präfix ein kommerzielles A (@) angehängt werden.

Um im Repository Datenströme zu finden, die Teil des durch den Aliasnamen 5421 bezeichneten Projektbereichs sind, verwenden Sie diese Abfrage:

lscm query --stream "in_projectarea(@5421)"

Verwenden Sie die folgende Syntax für die Funktion "has_read_access", die für Stream- und Repository-Arbeitsbereichsabfragen verwendet werden kann.

has_read_access("visibility")
has_read_access("visibility", optional_visibility_identifier)

Für den Befehl " scm query - stream kann die Sichtbarkeit eine der folgenden sein:

  • projectArea
  • teamArea
  • Zugriffsgruppe

Auf projectarea kann ein optionales zweites Argument folgen, das einen bestimmten Projektbereich darstellt.

Auf teamarea kann ein optionales zweites Argument folgen, das einen bestimmten Teambereich darstellt.

Auf accessgroup kann ein optionales zweites Argument folgen, das eine bestimmte Zugriffsgruppe darstellt.

Für den Befehl " scm query - workspace kann die Sichtbarkeit eine der folgenden sein:

  • Öffentlich
  • Privat
  • projectArea
  • Zugriffsgruppe

Auf private und public folgt nie ein zweites Argument.

Auf accessgroup kann ein optionales zweites Argument folgen, das eine bestimmte Zugriffsgruppe darstellt.

Auf projectarea kann ein optionales zweites Argument folgen, das einen bestimmten Projektbereich darstellt.

optional_visibility_identifier ist der Name, die UUID oder der Aliasname der entsprechenden Zugriffsgruppe, des entsprechenden Projektbereichs oder des entsprechenden Teambereichs. Einer Aliasnummer muss ein kommerzielles A (@) vorangestellt werden. Wenn accessgroup, projectareaoder teamarea ohne optional_visibility_identifier angegeben werden, gleicht die Abfrage alle Datenströme oder Arbeitsbereiche mit einer Sichtbarkeit einer Zugriffsgruppe, eines Projektbereichs oder eines Teambereichs ab.

Abfrageausdrücke kombinieren

Sie können Abfrageausdrücke kombinieren, um die Datei- und Verzeichnisergebnisse für eine Repositorysuche zu definieren.

query clause and query clause

query clause or query clause

Die Abfrageklausel kann eine Attributabfrage, eine Abfragefunktion oder ein anderer kombinierter Abfrageausdruck sein.

Beispiele:

$ lscm query --snapshot "release='beta' or AttrCopy='xyz'"
$ lscm query --baseline "release='beta' and AttrCopy='xyz'"
$ lscm query --file "in_baseline('_xrkMUE_3EeSh2OH6eOomcA') and release='beta'"