pure::variants – Connector für
Handbuch zur Quellcodeverwaltung
Parametric Technology GmbH
Version 6.0.7.685 für pure::variants 6.0
Copyright © 2003-2024 Parametric Technology GmbH
2024
Einführung
pure::variants Connector für Source Code Management (Connector) ermöglicht Entwicklern die Verwaltung der Quellcodevariabilität mit pure::variants. Das Source Code Management von pure::variants bietet eine flexible Möglichkeit, Verzeichnisstrukturen und Quellcode zu synchronisieren files einfach mit pure::variants Modellen. Dadurch kann Variantenmanagement auch bei komplexen Softwareprojekten praktikabel angewendet werden. Darüber hinaus können Verbindungen zwischen pure::variants Features und Quellcode mit dem Builder einfacher verwaltet werden und sind über das Source Code Management leicht zugänglich.
1.1. Softwareanforderungen
Der pure::variants Connector für Source Code Management ist eine Erweiterung für pure::variants und ist auf allen unterstützten Plattformen verfügbar.
1.2. Installation
Detaillierte Informationen zur Installation des Connectors finden Sie im Abschnitt pure::variants Connectors im pure::variants Setup Guide (Menü Hilfe -> Hilfeinhalt und dann pure::variants Setup Guide -> pure::variants Connectors).
1.3. Zu diesem Handbuch
Vom Leser werden Grundkenntnisse und Erfahrungen mit pure::variants vorausgesetzt. Bitte lesen Sie vor dem Lesen dieses Handbuchs das Einführungsmaterial. Das Handbuch ist sowohl als Online-Hilfe als auch als druckbares PDF-Format hier verfügbar.
Connector verwenden
2.1. Starten von pure::variants
Abhängig von der verwendeten Installationsmethode starten Sie entweder das pure::variants-fähige Eclipse oder wählen Sie unter Windows den Eintrag pure::variants aus dem Programmmenü.
Wenn die Perspektive „Variantenverwaltung“ noch nicht aktiviert ist, aktivieren Sie sie, indem Sie sie im Menü „Fenster“ unter „Perspektive öffnen“ > „Andere …“ auswählen.
2.2. Importieren eines Verzeichnisbaums in ein Familienmodell
Bevor ein Verzeichnisbaum in ein Familienmodell importiert wird, muss ein Variantenprojekt erstellt werden. Außerdem ist es ratsam, bereits Features in einem Featuremodell definiert zu haben. Hilfe zu diesen Schritten finden Sie in der pure::variants-Dokumentation.
Der eigentliche Import wird durch Auswahl der Aktion Importieren… entweder im Kontextmenü des Projekts view oder über das Menü Importieren… im File Menü. Wählen Sie Variantenmodelle oder Projekte aus der Kategorie Variantenverwaltung und drücken Sie Weiter. Wählen Sie auf der folgenden Seite Familienmodell aus Quellordnern importieren und drücken Sie erneut Weiter.
Wählen Sie den zu importierenden Quellcodetyp aus
Der Importassistent erscheint (siehe Abbildung 1, „Seite des Importassistenten zur Auswahl des Quellcodetyps, der importiert werden kann“). Wählen Sie einen zu importierenden Projekttyp aus und klicken Sie auf Weiter. Jeder Typ enthält einen vordefinierten Satz von file Typen, die in das Modell importiert werden sollen.
Abbildung 1. Seite des Importassistenten zur Auswahl des Quellcodetyps, der importiert werden kannQuelle und Ziel auswählen
Auf der nächsten Seite des Assistenten (Abbildung 2, „Seite des Importassistenten zur Auswahl der Quelle und des Ziels für den Import“) müssen das Quellverzeichnis und das Zielmodell angegeben werden.
Klicken Sie auf die Schaltfläche Durchsuchen…, um das Verzeichnis auszuwählen, in dem der zu importierende Quellcode vorhanden ist. Standardmäßig ist der aktuelle Arbeitsbereich ausgewählt, da dies ein nützlicher Ausgangspunkt für die Navigation sein kann.
Unten können Sie Einschluss- und Ausschlussmuster angeben. Diese Muster müssen reguläre Java-Ausdrücke sein. Jeder Eingabepfad relativ zum Quellstammordner wird anhand dieser Muster überprüft. Wenn das Einschlussmuster übereinstimmt, wird ein Ordner importiert, wenn das Ausschlussmuster nicht übereinstimmt. Das heißt, das Einschlussmuster wählt die zu importierenden Ordner vorab aus, das Ausschlussmuster schränkt diese Vorauswahl ein.
Nach der Auswahl des Quellcodeverzeichnisses muss ein Zielmodell definiert werden. Wählen Sie dazu ein Variantenprojekt oder einen Ordner aus, in dem das Modell gespeichert werden soll und geben Sie einen Modellnamen ein. Der file Name wird automatisch mit der Erweiterung .ccfm erweitert, wenn sie in diesem Dialogfeld nicht angegeben wird. Standardmäßig wird derselbe Name wie der Modellname selbst verwendet. Dies ist die empfohlene Einstellung.
Nachdem ein geeigneter Quellordner und der gewünschte Modellname angegeben wurden, kann der Dialog mit Fertigstellen abgeschlossen werden. Wird der Weiter-Button gedrückt, erscheint eine weitere Seite, auf der weitere Einstellungen vorgenommen werden können.
Abbildung 2. Seite des Importassistenten zur Auswahl der Quelle und des Ziels für den ImportImporteinstellungen ändern
Auf der letzten Seite des Assistenten (Abbildung 3, „Seite des Importassistenten zur Definition einer individuellen Konfiguration”) gibt es Einstellungen, mit denen das Importverhalten für das importierte Softwareprojekt angepasst werden kann.
Die Dialogseite zeigt eine Tabelle, in der die file Es werden Typen definiert, die beim Importvorgang berücksichtigt werden.
Jede Zeile besteht aus vier Feldern.
- Das Feld Beschreibung enthält einen kurzen beschreibenden Text zur Identifizierung des file Typ.
- Der File Das Feld Namensmuster wird zur Auswahl verwendet files, die importiert werden sollen, wenn sie mit dem Feldwert übereinstimmen. Das Feld verwendet die folgende Syntax:
- Der häufigste Anwendungsfall ist möglicherweise file Erweiterung. Die übliche Syntax ist .EXT, wobei EXT die gewünschte file Erweiterung (z. B. .java).
- Eine weitere häufige Situation ist eine spezielle file, wie ein Makefile. Daher ist es möglich, auf die genaue file Namen. Geben Sie dazu einfach den file Name in das Feld ein (zB build.xml).
- In manchen Fällen sind die Mapping-Wünsche spezifischer, so dass nur files, die einem speziellen Muster entsprechen, sollen importiert werden. Um dieser Anforderung gerecht zu werden, ist es möglich, reguläre Ausdrücke in den File Namensmusterfeld.
Die Beschreibung der Syntax von regulären Ausdrücken würde den Rahmen dieser Hilfe sprengen. Bitte konsultieren Sie den Abschnitt zu regulären Ausdrücken im Referenzkapitel im pure::variants Benutzerhandbuch (z. B. .*).
- Das Feld Zugeordneter Elementtyp legt die Zuordnung zwischen einem file und ein pure::variants Familienelementtyp. Der Familienelementtyp ist ein Deskriptor für die Quelle file um weitere Informationen zum zugeordneten Element im importierten Modell bereitzustellen. Typische Auswahlmöglichkeiten sind ps:class oder ps:makefile.
- Die Kartierten file Das Feld Typ legt die Zuordnung zwischen einem file Typ und ein pure::variants file Typ. Die file Typ in pure::variants ist ein Deskriptor für die Quelle file um weitere Informationen zum zugeordneten Element im importierten Modell bereitzustellen. Typische Auswahlmöglichkeiten sind impl für Implementierungen oder def für Definition files.
Abbildung 3. Seite des Importassistenten zum Definieren einer individuellen KonfigurationNeu file Typen können über die Schaltfläche Zuordnung hinzufügen hinzugefügt werden. Alle Felder sind mit dem Wert undefiniert gefüllt und müssen vom Benutzer ausgefüllt werden. Um einen Wert in einem Feld zu bearbeiten, klicken Sie einfach mit der Maus in das Feld. Der Wert wird editierbar und kann geändert werden. Es ist nicht möglich, den Standardwert zu ändern. file Namensmuster der Tabelle. Um eine Anpassung flexibel zu gestalten, ist es möglich, ein file geben Sie ein, indem Sie die Zeile abwählen. Abgewählt file Namensmuster bleiben in der Konfiguration, werden aber vom Importer nicht verwendet. Benutzerdefiniert file Typen können mithilfe der Schaltfläche „Zuordnung entfernen“ wieder entfernt werden.
Standardmäßig ist ein Anderes files file Namensmuster ist in der Tabelle verfügbar, aber deaktiviert. Normalerweise ist es nicht erwünscht, alle files, dies kann jedoch leicht durch Auswählen der entsprechenden Zeile geändert werden.
Es gibt drei allgemeine Importoptionen, um das Verhalten des Importers anzupassen.
- Importieren Sie keine Verzeichnisse ohne Übereinstimmung files (z. B. CVS-Verzeichnisse).
Findet der Importer ein Verzeichnis, in dem keine passenden file ist darin und wo kein Unterverzeichnis eine passende file, wird das Verzeichnis nicht importiert. Dies ist oft nützlich, wenn Projekte mit Versionsverwaltungssystemen wie CVS verwaltet werden. Bei CVS enthält jedes relevante Verzeichnis ein CVS-Verzeichnis, in dem irrelevante files gespeichert werden. Wenn diese Option ausgewählt ist und die CVS-files passen zu keinem file Typ, der oben definiert ist, wird das Verzeichnis nicht als Komponente in das Familienmodell importiert. - Sortieren files und Verzeichnisse.
Aktivieren Sie diese Option zum Sortieren files und Verzeichnisse jeweils in alphabetischer Reihenfolge. - Handhabung des Importpfads.
Für die weitere Synchronisierung muss der Importer den ursprünglichen Pfad aller importierten Elemente im Modell speichern.
In vielen Fällen werden Familienmodelle mit anderen Benutzern geteilt. Die Verzeichnisstruktur kann für jeden Benutzer unterschiedlich sein. Um die gängigsten Nutzungsszenarien zu unterstützen, kann der Importer in verschiedenen Modi arbeiten:
Absolute | Der absolute Pfad zum importierten Element wird im Modell gespeichert. Für die spätere Synchronisation und während der Transformation wird der files müssen an genau derselben Stelle platziert werden wie beim ersten Import. |
Relativ zum Arbeitsbereich | Die Pfade werden relativ zum Arbeitsbereichsordner gespeichert. Zur Synchronisierung muss der files muss Teil des Eclipse-Arbeitsbereichs sein. Die Transformation muss den Eclipse-Arbeitsbereich als Eingabeverzeichnis verwenden. |
Relativ zum Projekt | Die Pfade werden relativ zum Projekt gespeichert. Zur Synchronisation files sind Teil des Projekts in Eclipse. Die Transformation muss den Projektordner als Eingabeverzeichnis verwenden. |
Relativ zum Pfad | Die Pfade werden relativ zum angegebenen Pfad gespeichert. Zur Synchronisation wird der files müssen an genau derselben Stelle abgelegt werden. Das Transformations-Eingabeverzeichnis ist derselbe wie der relative Pfad beim Import. |
Alle Einstellungen dieses Dialogs werden dauerhaft gespeichert. Die persönlichen Anpassungen müssen nicht bei jedem Importvorgang erneut vorgenommen werden. Dies macht den Import-Workflow einfach und schnell.
2.3. Modelle aus dem Verzeichnisbaum aktualisieren
Drücken Sie die Schaltfläche Synchronisieren um ein importiertes Modell mit seinem Verzeichnispfad zu synchronisieren. Der Stammpfad des Projekts ist im Modell gespeichert, sodass es in dasselbe Verzeichnis wie zuvor synchronisiert wird. Um die Schaltfläche „Synchronisieren“ zu aktivieren, öffnen Sie das Modell und wählen Sie ein beliebiges Element aus. Nach dem Drücken der Schaltfläche „Synchronisieren“ wird ein Vergleichseditor geöffnet, in dem das aktuelle Familienmodell und das Modell der aktuellen Verzeichnisstruktur gegenübergestellt werden (siehe Abbildung 4, „Modellaktualisierung aus dem Verzeichnisbaum im Vergleichseditor“).
Abbildung 4. Modellaktualisierung aus dem Verzeichnisbaum im Vergleichseditor Der Vergleichseditor wird in pure::variants überall zum Vergleichen von Modellversionen verwendet. In diesem Fall wird er jedoch verwendet, um die physische Verzeichnisstruktur (unten rechts angezeigt) mit dem aktuellen pure::variants-Modell (unten links) zu vergleichen. Alle Änderungen werden als separate Elemente im oberen Teil des Editors aufgelistet, sortiert nach den betroffenen Elementen.
Durch Auswahl eines Eintrags in dieser Liste wird die jeweilige Änderung in beiden Modellen hervorgehoben.ample, ein hinzugefügtes Element wird mit einem Kästchen auf der rechten Seite markiert und mit seiner möglichen Position im Modell auf der linken Seite verbunden. Die Merge-Symbolleiste zwischen oberem und unterem Editorfenster bietet Werkzeuge, um einzelne oder sogar alle (nicht widersprüchlichen) Änderungen als Ganzes vom Verzeichnisbaummodell in das Featuremodell zu kopieren.
Notiz
Die Synchronisierung erfolgt mit den zuletzt verwendeten Importereinstellungen. Dadurch ist es möglich, das Modell mit den beim Import vorgenommenen Einstellungen zu aktualisieren.
Verwenden des Relation Indexer
Der Connector für Source Code Management erweitert die Beziehungen View mit Informationen über Verbindungen zwischen pure::variants Modellelementen und Quelltext. Für Features, die in Bedingungen der ps:condxml und ps:condtext Elemente verwendet werden, werden Relationen hinzugefügt.
Für ps:flag und ps:flagfile Elemente der Speicherort von Präprozessorkonstanten im C/C++-Quellcode files werden angezeigt. Zusätzlich werden die Standorte der passenden Präprozessorkonstanten für ein ausgewähltes Feature angezeigt, indem die Zuordnung zwischen eindeutigen Featurenamen und Präprozessorkonstanten verwendet wird.
3.1. Hinzufügen des Relation Indexer zu einem Projekt
Der Relationsindexer kann auf einer speziellen Projekteigenschaftenseite aktiviert werden. Markieren Sie das Projekt und wählen Sie im Kontextmenü den Eintrag Eigenschaften. Wählen Sie im angezeigten Dialog die Seite Relationsindexer aus.
Abbildung 5. Projekteigenschaftenseite für den Beziehungsindexer
Der Relation Indexer wird für das Projekt aktiviert, indem die Option Enable Relation Indexer (1) ausgewählt wird. Nach der Aktivierung des Indexers gibt es noch einige weitere Optionen, um das projektspezifische Verhalten zu definieren. Die Indizierung von pure::variants Conditions und C/C++ Preprocessor Constants kann separat aktiviert werden (2). Die Liste mit file Namensmuster (3) dient zur Auswahl der files für die Indizierung. Nur files, die einem der Muster entsprechen, werden gescannt. Fügen Sie das „*“ als Muster hinzu, um alle files eines Projekts.
Nach der Aktivierung des Indexers für ein Projekt wird dem Projekt ein Builder hinzugefügt. Dieser Builder durchsucht geänderte files für neue Beziehungen zu pure::variants Modellelementen automatisch.
3.2. Die Beziehungen zum Quellcode
Bei aktiviertem Relation Indexer werden die Relations View enthält zusätzliche Einträge. Diese Einträge zeigen den Namen des file und die Zeilennummer des Variantenpunkts. Der Tooltip zeigt den entsprechenden Abschnitt der fileDurch Doppelklick auf den Eintrag wird file wird in einem Editor geöffnet.
pure::variants Bedingungen
Die Bedingung pure::variants kann verwendet werden, um Abschnitte einer file abhängig von einer Merkmalsauswahl. Der Condition Indexer sucht nach solchen Regeln und extrahiert die referenzierten Merkmale. Wenn ein solches Merkmal im Editor ausgewählt ist, werden die Beziehungen View wird alles zeigen files und Zeilen, in denen sich eine Bedingung mit dem ausgewählten Merkmal befindet (siehe Abbildung 6, „Darstellung einer Bedingung in den Beziehungen View”).
Abbildung 6. Darstellung einer Bedingung in den Beziehungen ViewEine ausführliche Erklärung zur Definition von Bedingungen finden Sie im Abschnitt ps:condtext im Kapitel 9.5.7 des pure::variants Benutzerhandbuchs (Referenz–>Vordefinierte Quellelementtypen–>ps:condtext).
C/C++-Präprozessorkonstanten
Der C/C++ Preprocessor Indexer scannt files für Konstanten, die in Präprozessorregeln verwendet werden (z. B. #ifdef, #ifndef, …).
Wenn ein ps:flag oder ps:flagfile Element ausgewählt ist, werden die Beziehungen View zeigt die Verwendung der definierten Präprozessorkonstante.
Die Beziehungen View zeigt auch Präprozessorkonstanten an, die über Mapping-Muster mit Features verknüpft sind. Dazu werden die Muster mit den Daten des ausgewählten Features erweitert. Die resultierenden Symbole werden verwendet, um nach passenden Präprozessorkonstanten zu suchen. Abbildung 7, „Darstellung einer C/C++ Präprozessorkonstante in den Beziehungen View” zeigt einen Example mit dem Muster fame{Name}. Das Muster wird mit dem eindeutigen Namen des Features zu fameNative erweitert. Im indizierten Code gibt es 76 Stellen, an denen die Präprozessorkonstante fameNative verwendet wird.
Diese Standorte werden in den Beziehungen angezeigt ViewDie Muster können in den Einstellungen definiert werden (siehe Abschnitt 3.3, „Die Einstellungen“).
Abbildung 7. Darstellung einer C/C++ Präprozessorkonstante in den Beziehungen View
3.3. Die Einstellungen
Um das Standardverhalten des Indexers zu ändern, öffnen Sie die Eclipse-Einstellungen und wählen Sie die Seite „Relation Indexer“ in der Kategorie „Variantenverwaltung“. Die Seite zeigt zwei Listen.
Abbildung 8. Seite „Relation Indexer-Einstellungen“Die obere Liste enthält die Standardeinstellungen file Muster für den Indexer (1). Diese Liste ist die anfängliche Mustereinstellung für neu aktivierte Projekte.
Die untere Liste enthält die Zuordnung zwischen Features und Präprozessorkonstanten (2). Diese Zuordnung wird für alle Projekte verwendet. Tabelle 1, „Unterstützte Zuordnungsersetzungen“ zeigt alle möglichen Ersetzungen.
Tabelle 1. Unterstützte Mapping-Ersetzungen
Wildcard | Beschreibung | Example: MerkmalA |
Name | der eindeutige Name des ausgewählten Features | FLAG_{Name} – FLAG_FunktionA |
NAME | der eindeutige Name des ausgewählten Features in Großbuchstaben | FLAG_{NAME} – FLAG_FEATUREA |
Name | der eindeutige Name des ausgewählten Features in Kleinbuchstaben | flag_{name} – Flaggenmerkmal |
Dokumente / Ressourcen
![]() |
pure-systems 2024 Connector für Source Code Management Software [pdf] Benutzerhandbuch 2024, 2024 Connector für Quellcode-Management-Software, Connector für Quellcode-Management-Software, Quellcode-Management-Software, Management-Software, Software |