EnglischFranzösischSpanisch

OnWorks-Favicon

aeintegratq – Online in der Cloud

Führen Sie aeintegratq im kostenlosen Hosting-Anbieter OnWorks über Ubuntu Online, Fedora Online, den Windows-Online-Emulator oder den MAC OS-Online-Emulator aus

Dies ist der Befehl aeintegratq, der beim kostenlosen Hosting-Anbieter OnWorks mit einer unserer zahlreichen kostenlosen Online-Workstations wie Ubuntu Online, Fedora Online, dem Windows-Online-Emulator oder dem MAC OS-Online-Emulator ausgeführt werden kann

PROGRAMM:

NAME/FUNKTION


aeintegratq – Änderungen in Projekte integrieren

ZUSAMMENFASSUNG


aeintegratq [ zu erhalten... ] Projektname...

BESCHREIBUNG


Die aeintegratq Der Befehl wird verwendet, um die Integrationen einer oder mehrerer Änderungen in einer zu verwalten
oder mehr Projekte. Normalerweise über laufen cron(1) oder at(1) mit dem Namen eines einzelnen Projekts,
aeintegratq verwaltet alle Vorgänge für die Integration, auch wenn -Bauen und -Prüfung sind
auf mehreren Architekturen erforderlich. Wenn eine Änderungsüberprüfung nach der Warteschlange widerrufen wird
Beim Ausführen von aeintegratq wird der fehlerhafte Zustand bemerkt und stillschweigend fortgefahren. Wenn einer oder mehrere
Änderungen werden beendet oder übergeben, nachdem die Warteschlange ausgeführt wird und -loop angegeben wurde.
aeintegratq wird die neuen Änderungen bemerken und sie integrieren. Zusätzliche Optionen ermöglichen
Der Integrator hat die volle Kontrolle über die meisten Aspekte der Warteschlangenverwaltung, beispielsweise die Reihenfolge
Integration mehrerer Änderungen.

OPTIONAL


Folgende Optionen werden verstanden:

Option Zusammenfassung
-h Hilfe, Nutzungsinformationen anzeigen.

-H Hilfe, Nutzung anzeigen sowie alle hilfreichen Kommentarinformationen.

-a auf jeder Maschine laufen (normalerweise nur IntegrationHost)

-s Remote-Vorgänge über SSH ausführen (Standard-RSH)

-n Keine Maßnahmen, sagen Sie einfach, was getan werden würde.

-ib s Geben Sie den (Remote-)Server für ibegin an.

-ip s Geben Sie den (Remote-)Server für ipass an.

-k Behalten Sie die Skripte und Berichtsdateien.

-K Behalten Sie die temporäre Datei, auch wenn die Integration erfolgreich ist.

-Schleife Schleife, um weitere Änderungen zu verarbeiten, wenn diese vor aeintegratq verfügbar werden
vervollständigt. Es wird aufhören, wenn nichts mehr zu tun ist.

-M Liste Mindestens, gegebene Änderungen ausführen -Minimum

-P Liste Schatz, nicht Ich versage Änderungen in Liste, Hör einfach auf.

-R Liste Bereit, Reihenfolge und Teilmenge angeben, z.B -R 29,45

-S Stufe
Abholen in gegebener Phase (diff|build|test|integrate)

-c Nummer wechseln
Geben Sie „Change“ für die Integration in der Phase an

-p Projektname
Geben Sie einen einzelnen Projektnamen an

HINWEIS: Wenn benutzerdefinierte Optionen wie -P -R -S -c -p angegeben werden, kann nur ein einzelnes Projekt angegeben werden
integriert, da die Optionen für das nächste gegebene Projekt bedeutungslos wären.

Einige Optionen stehen nur zum Testen und Untersuchen zur Verfügung. Beachten Sie, dass es Optionen gibt
für den normalen Betrieb selten erforderlich.

Control Optionen
Für besondere Bedürfnisse stehen folgende Optionen zur Verfügung. Sie kontrollieren die Reihenfolge und
Disposition jeder Änderung Warten auf_Integration in einem bestimmten Projekt.

-R[bereit] Nummer1, Nummer2...
Mit dieser Option wird die zu integrierende Reihenfolge oder Teilmenge angegeben. Nur diese Änderungen
Die aufgeführten Schritte werden in genau der angegebenen Reihenfolge ausgeführt. Dies gilt für die Warteschlange
Schleife wenn -Schleife gegeben ist. Beachten Sie insbesondere, es sei denn, die Liste enthält zukünftige
Änderungen, zukünftige Schleifen werden sie nicht integrieren.

Nützlich, wenn aus irgendeinem Grund eine bestimmte Änderung vor einer anderen vorgenommen werden muss. Oder wenn
Es werden nur ein oder zwei Änderungen integriert, wenn es mehrere sind Warten auf_Integration begann
gegebenes Projekt. Mit kann auch eine einzelne Änderung angegeben werden -ändern] Anzahl
Option, die für andere Aegis-Befehle üblich ist. Allerdings die -R Option erlaubt a
Liste und überschreibt, falls angegeben, alle -c gegeben.

-P[wertvoll] Nummer1, Nummer2...

-P[wertvoll] alle
Diese Option wird verwendet, um anzugeben, dass eine bestimmte Änderung oder eine Teilmenge von Änderungen erfolgt
sollten berücksichtigt werden wertvoll. Es impliziert weder eine Reihenfolge noch begrenzt es den Warteschlangenlauf
zu dieser Teilmenge; es bedeutet lediglich, dass die Änderungen berücksichtigt werden sollten wertvoll.
Beachten Sie, dass mindestens eine Zahl (oder das Schlüsselwort alle) muss gegeben werden.

Der Begriff wertvoll bedeutet, dass die gegebene Änderung irgendwo fehlschlagen würde
Wenn der Integrationsprozess beendet ist, stoppt der Prozess einfach und verlässt das Problem
Änderung im Delta-Verzeichnis. Der -Ich versage würde eigentlich nicht ausgeführt werden. Das
ist manchmal nützlich, um ein Problem zu diagnostizieren, das nur bei Integrationen auftritt.
Dies ist auch nützlich, wenn der Fehler auf ein vorübergehendes Problem zurückzuführen ist, beispielsweise auf eine Unzuverlässigkeit
Maschinen im Netzwerk. In einem solchen Fall kann die Integration danach wieder aufgenommen werden
das Problem beheben. Siehe die Stufe Optionen unten.

Wenn hingegen a wertvoll Veränderung schafft es durch den Integrationsprozess
Erfolgreich ausgeführt, hat die Option keine Auswirkung.

-M[Minimum] Nummer1, Nummer2... or alle
Integrieren Sie die gegebenen Änderungen in die -Minimum Möglichkeit. Solche Änderungen werden vorgenommen
am Ende der Warteschlange, sodass die letzten Integrationen eines Laufs minimal sind.
Diese Funktion ermöglicht die praktische Nutzung minimaler Integrationen, ohne dass dies erforderlich ist
-Minimum bei jeder einzelnen Integration. Siehe den Abschnitt weiter unten Mindestens
Integrationen für mehr Informationen. Wenn -Schleife erhält jede Änderung, die als angegeben ist
Minimum wird am Ende der Schleife ausgeführt, in der sie bereit sind, sie werden es jedoch nicht sein
bis zur letzten Runde geschoben.

-ib[Server] Servername oder ""

-ip[Server] Servername oder ""
Zum Angeben eines Remote-Servers, auf dem ausgeführt werden soll -Ich beginne or 0 bzw. Diese
Optionen sind selten erforderlich, aber Mai be nützlich if a Projekt is gehostet on a
anders Datei Server und hat a grosse Grundlinie. By mit -Ich beginne Lauf on zur Verbesserung der Gesundheitsgerechtigkeit
Server Netzwerk der Verkehr würde be sehr reduziert und für grosse Projekte und / oder
langsam Netzwerke können. sehr Veteran Zeit falls angefordert für -Ich beginne. Die zu erhalten unten stehende Formular
of Angabe an leer Name hängt on Möglichkeiten für das Ausgangssignal: of df -k Angabe a analysierbar Gastgeber
Namen. If zur Verbesserung der Gesundheitsgerechtigkeit is nicht was immer dies auch sein sollte. on deine Integration Gastgeber die Architektur, U werden wir haben zu
angeben Server Namen.

-Anzeige Anzeigewert or ""
Zum Angeben einer gültigen X-Anzeige zur Verwendung während Integrationsvorgängen.

Stufe Optionen
Die folgenden Optionen ermöglichen den [Neustart] einer bereits fortgeschrittenen Integration
durch einige Etappen. Dies ist nützlich, um mit fehlgeschlagenen (wertvoll) Integrationen oder zu
Eine manuell begonnene Integration wird automatisch beendet.

-S[Tag] diff

-S[Tag] bauen

-S[Tag] Test

-S[Tag] integriert
Nehmen Sie die Integration zum gegebenen Zeitpunkt auf Stufe. Benötigt -c[hängen] Anzahl Option zu
Geben Sie die Änderungsnummer an.

Fortgeschrittener Steuergriffe


Der Integrator kann für Sondersituationen sorgen, z. B. für danach erforderliche Vorgänge
-Bauen und davor -Prüfungoder am Ende einer Warteschlangenausführung. Solche Funktionen werden bereitgestellt von
Haken und Strategien unten beschrieben.

Haken
Es gibt eine Reihe von Haken verfügbar, die, sofern vorhanden, vor und nach jeder Stufe ausgeführt werden
der Integration. Sie können verwendet werden, um sicherzustellen, dass der Integrator tatsächlich erhält
Manche schlafen, während sie große Projekte verwalten.

Nach diesen Hooks wird im Verzeichnis gesucht $HOME/integration_hooks. Es muss keine existieren;
aeintegratq achtet nur auf diejenigen, die existieren. Haken können jede Form haben
ausführbare Datei (Skript usw.) und werden mit 2 Argumenten aufgerufen: Projektname Nummer wechseln.
Sie laufen als Integrator auf der Maschine, von der aus aeintegratq gestartet wurde. Sie sind
Benannt nach dem Projektnamen und einem Suffix entsprechend der Stelle im Projekt
Welchen Integrationsprozess Sie ausführen möchten.

Beachten Sie, dass es sich um einen Haken für das Projekt handelt foo existiert, wird es auch für alle darunter liegenden Zweige verwendet
Projekt. Zum Beispiel, wenn Sie bereitgestellt haben foo.pre_ip, es wird für foo.1 und ausgeführt
foo.1.0 auch. Wenn Sie aus irgendeinem Grund eine andere (oder keine) Aktion für das Projekt wünschen
foo.1.0, dann würden Sie bereitstellen foo.1.0.pre_ip das macht, was Sie wollen, einschließlich
nichts, praktisch außer Kraft gesetzt foo.pre_ip.

Hier erfahren Sie, wie Sie bestimmte Stellen im Integrationsprozess Hook-Suffixen zuordnen.

┌─────────────────────────────────────── ────────── ─┐
│Bei Zeitverlängerung ausführen │
├─────────────────────────────────────── ────────── ─┤
│bevor Sie -Integrate_Begin .pre_ib │ versuchen
│nachdem -Integrate_Begin .ib abgeschlossen hat │
│bevor Sie es versuchen -Diff .pre_d │
│nachdem -Diff abgeschlossen ist .d │
│bevor Sie -Build .pre_b │ versuchen
│after -Build abgeschlossen .b │
│Bevor Sie es versuchen, bauen Sie darauf auf .Vor_ b │
│nachher -Aufbauen vervollständigt. b │
│bevor Sie -Test .pre_t │ versuchen
│after -Test abgeschlossen .t │
│bevor Sie -IPass .pre_ip │ versuchen
│after -IPass vervollständigt .ip │
│bevor Sie -IFail .pre_if │ versuchen
│nachdem -IFail abgeschlossen ist .if │
└─────────────────────────────────────── ────────── ─┘
Das Hook-Programm sollte bei Erfolg mit 0 beendet werden, andernfalls mit 1. Ein Exit-Ursache ungleich Null
Die zu integrierende Änderung schlägt sofort fehl, es sei denn, sie wurde als wertvoll markiert.

Beachten Sie, dass in den meisten Fällen alles über eine erfolgt .ip Hook sollte wahrscheinlich stattdessen von ausgeführt werden
ipass_notify Befehl in der Projektattributdatei (siehe aepattr(5) für mehr
Informationen) oder die build_time_adjust_notify_command in der Projektkonfigurationsdatei
(sehen aepconf(5) für weitere Informationen), aber der Haken kann eine vorübergehende Möglichkeit zum Aufbewahren bieten
so lange, bis die dauerhafte Lösung umgesetzt werden kann.

Zusätzlich zwei Spezialhaken, aeintegratq.end und aeintegratq.fail, sind erkannt.
Sie werden wann genannt aeintegratq beendet einen Warteschlangenlauf. Sie werden mit 2 Argumenten aufgerufen
wie jeder andere Haken (Projektname Nummer wechseln), obwohl sowohl der Projektname als auch
Die angegebenen Änderungsnummern beziehen sich auf die zuletzt integrierte Änderung und sind möglicherweise weniger nützlich.

Die .Ende Hook wird aufgerufen, wenn die Warteschlangenausführung abgeschlossen ist und erfolgreich war. Beachten Sie, dass
Dies bedeutet nicht, dass keine Änderungen fehlgeschlagen sind, sondern nur, dass keine Warteschlangenfehler aufgetreten sind. Dieser Haken
kann verwendet werden, um eine andere Warteschlangenausführung in einem anderen Projekt/Zweig aufzurufen, oder möglicherweise sogar
am selben Projekt, wenn während des ersten möglicherweise andere Änderungen beendet und/oder überprüft wurden
Der Lauf war im Gange, siehe auch -Schleife Möglichkeit. Diese Bedingungen treten häufig auf
Gleitzeitingenieure. Eine weitere Verwendung des .Ende Hook besteht darin, automatisch einen neuen zu erstellen
Paket unter Verwendung des neu integrierten Projekts als Quelle.

Wenn Warteschlangenfehler aufgetreten sind oder eine markierte Änderung fehlgeschlagen ist wertvoll, dann ist die
.Scheitern Hook heißt. Eine offensichtliche Verwendung dieses Hooks wäre eine E-Mail-Seite an die
Integrator.

Strategie or Ups-noch einmal versuchen
Manchmal wird die Integration durch ein anhaltendes Build-Problem beeinträchtigt. Das kann sehr ärgerlich sein
wenn es einen Lauf über Nacht ruiniert, vor allem, wenn die Abhilfe einfach ist, wenn es passiert. Beispiele
Dies kann auf Zeitüberschreitungen aufgrund eines ausgelasteten Datenservers oder anderer vorübergehender Fehler zurückzuführen sein. Beachten Sie, dass
Dies gilt nur für -Bauen verwandte Probleme.

Um solche Probleme zu lösen, kann der Integrator Folgendes bereitstellen: Strategie Skript speziell für a
Projekt. Ein ausführbares Programm sollte in gefunden werden $HOME/Strategie. . Die
Programm werden wir be Lauf as Integrator mit Delta Verzeichnis as Strom Verzeichnis. Die
Programm Mai do jedem Befehle notwendig, zu reinigen up und / oder diagnostizieren Fehler. If
Skript findet Problem zu be vorübergehend und reparierbar, it Ausgänge erfolgreich (mit 0
Status) und aeintegratq werden wir neu starten -Bauen und Log wiederholen. Sonst
Skript sollte wunsch mit a 1 und Übernehmen werden wir Scheitern.

Multi-Architektur Integrationen


Für Projekte, die auf mehreren Architekturen aufbauen und testen, ist aeintegratq erforderlich
arch_hosts installiert sein und über mindestens eine Maschine jeder Architektur verfügen
erforderlich. Dies gilt auch, wenn der Host, von dem aus aeintegratq ausgeführt wird, ein anderer ist
Architektur aus der Zielarchitektur des zu integrierenden Projekts.

Wenn Sie die Vorteile automatischer Integrationen mehrerer Architekturen nutzen möchten, können Sie dies tun
installieren arch_hosts Oder stellen Sie ein einfacheres Skript bereit, das einen Maschinennamen zurückgibt
je nach Architektur und Jobtyp.

Mindestens Integrationen


stellt ein Minimum Integrationsfähigkeit, die aus verschiedenen Gründen genutzt werden kann. Der
Begriff Minimum ist vielleicht etwas kontraintuitiv. Man könnte denken, es bedeutet, das zu tun Minimum
viel Arbeit, aber es bedeutet tatsächlich, a zu verwenden Minimum der Dateien von der Baseline in
bevölkern Delta Verzeichnis. Da keine erstellten Dateien in die Datei eingefügt werden Delta
Verzeichnis, führt dies normalerweise dazu, dass tatsächlich alles im Projekt erstellt wird
Quellen und könnten daher als die robustesten aller Builds angesehen werden.

Beachten Sie, dass jede Änderung, die eine Datei entfernt, sei es durch aerm or aemv, ergibt ein
implizit Minimum Integration. Damit soll nichts im Projekt sichergestellt werden
verweist auf die entfernte Datei.

Ein Projekt kann die Richtlinie übernehmen, dass eine Produktfreigabe auf einem Minimum basieren sollte
Integration. Eine solche Politik kann Ausdruck des lokalen Vertrauens oder mangelnden Vertrauens in sein Land sein
das DMT (Dependency Maintenance Tool) oder Build-System des Projekts. Oder es basiert auf a
Validierungsprozess, der eine einfache Aussage darüber treffen möchte, wie das freigegebene Paket war
produziert.

Ein weiterer, vorübergehenderer Grund, eine Mindestintegration zu fordern, könnte sein, wann
Aktualisieren einer Bibliothek, eines Compilers oder vielleicht sogar eines Betriebssystems eines Drittanbieters. Eines dieser Ereignisse
würde die Notwendigkeit einer Mindestintegration signalisieren, um sicherzustellen, dass alles mit dem neu erstellt wird
neue Ressourcen. Dies kann mit minimalem Aufwand mithilfe von erfolgen -M Option wie beschrieben
zu teilen.

Die Kosten für eine Minimum Die Integration variiert je nach Art und Größe des Projekts. Für
Bei sehr großen Projekten, insbesondere solchen, die eine große Anzahl von Binärdateien erstellen, können die Kosten hoch sein
groß. Allerdings benötigen große Projekte auch viel Zeit, um das Delta vollständig zu bevölkern
Verzeichnis. Bei einer minimalen Integration werden nur die Dateien unter Sicherheitskontrolle kopiert und übersprungen
alle „produzierten“ Dateien. Wenn eine Datei, von der alles abhängt, geändert wird,
Alles wird sowieso erstellt, daher ist das Kopieren der bereits erstellten Dateien eine Verschwendung
Zeit. Das bedeutet, dass ein Minimum manchmal genauso günstig sein kann wie eine normale Integration.

Manuell Tests


ermöglicht die Definition von Tests als manuell Dies kann erforderlich sein, wenn für den Test Menschen erforderlich sind
Interaktion oder eine vorübergehende Ressource. Solche Tests können für die Automatik problematisch sein
Integrationen und im Allgemeinen müssen einige Mittel vorhanden sein, um zu bestehen, ohne währenddessen ausgeführt zu werden
Integrationen. Aus diesem und anderen Gründen versuchen die meisten Websites, diese zu vermeiden manuell Tests. Dort
Es gibt eine Reihe von Möglichkeiten, einen Test so zu kodieren, dass er während des Tests automatisch bestanden wird
Integrationen. Nur ein Beispiel für Shell-Skripttests könnte sein:

CSTATE=`aesub -p $AEGIS_PROJECT -c $AEGIS_CHANGE '${state}''
if [ "$CSTATE" = "being_integrated" ]
dann
echo „`basename $0` wird während der Integration übergeben“
Beenden Sie 0
fi

Nein Unterstützung Programme


Es gibt einige Programme, die aeintegratq verwenden wird, wenn sie installiert sind.

· arch_hosts wurde bereits erwähnt. Dies ist nur optional, wenn Ihre Projekte und Ihre
Dateiserver haben eine einzige Architektur.

· Aelogres kann die bereitgestellten Informationen verbessern -Ich versage Einträge. Normalerweise alles, was Sie bekommen
sind die letzten 10 Zeilen der Protokolldatei, was nicht schlecht ist, wenn Tests fehlschlagen, aber schrecklich sein kann
für fehlgeschlagene Builds. Wenn Sie ein Programm mit dem Namen bereitstellen Aelogres der weiß, wie man a extrahiert
Für eine bessere, prägnante Problemmeldung wird stattdessen die Ausgabe dieses Programms verwendet
der einfache Schwanz. Es heißt mit a -i .

· sound_all_machines, sofern verfügbar, wird aufgerufen, wenn Integrationen erfolgreich sind oder fehlschlagen.
Es kann hilfreich sein, den Abschluss einer Integration anzukündigen. Wenn es bestanden hat,
Entwickler werden wahrscheinlich eine machen wollen aed um ihre Änderungen auf den neuesten Stand zu bringen. Der Ton
Die Ankündigung liefert einen weiteren zeitgemäßen Hinweis.

Die Sounddateien werden im Verzeichnis /var/lib/aegis/sounds gesucht. Sie werden haben
Endungen von _passieren und _scheitern entsprechend den Ergebnissen eines bestimmten Versuchs. Zwei Sounddateien
sind erforderlich: Integrationspass und Integrationsfehler. Andere werden verwendet, wenn sie zur Verfügung gestellt werden
Passen Sie die Sounds an, sodass jeder Entwickler einen oder mehrere persönliche Sounds haben kann. Wenn ein
Datei benannt _passieren befindet, wird es genutzt. Wenn eine Reihe von Dateien mit dem Namen vorhanden sind
<developer_pass.[0-9] Sie werden in zufälliger Reihenfolge verwendet. Es gilt die gleiche Suchregel
zu _scheitern setzt. Das sound_all_machines Das Programm kann eine Hostliste verwenden und den Ton abspielen
Datei auf jedem Computer oder, vorausgesetzt, dass andere Audiofunktionen vorhanden sind, kann jede beliebige Form haben
der Ankündigung gewünscht.

EXIT STATUS


Die aeintegratq Der Befehl wird bei jedem Fehler mit dem Status 1 beendet. Die aeintegratq
Der Befehl wird nur mit dem Status 0 beendet, wenn keine Fehler vorliegen.

VARIABLEN


See Ägide(1) für eine Liste von Umgebungsvariablen, die diesen Befehl beeinflussen können. Sehen
aepconf(5) für die Projektkonfigurationsdatei projektspezifisch Feld für die Einstellung
Umgebungsvariablen für alle von Aegis ausgeführten Befehle.

Nutzen Sie aeintegratq online über die Dienste von onworks.net


Kostenlose Server & Workstations

Laden Sie Windows- und Linux-Apps herunter

  • 1
    GeoServer
    GeoServer
    GeoServer ist eine Open-Source-Software
    in Java geschriebener Server, der Benutzern erlaubt
    um Geodaten zu teilen und zu bearbeiten.
    Es ist auf Interoperabilität ausgelegt
    veröffentlicht da...
    Laden Sie GeoServer herunter
  • 2
    Glühwürmchen III
    Glühwürmchen III
    Eine kostenlose und quelloffene persönliche Finanzierung
    Manager. Firefly III verfügt über a
    System der doppelten Buchführung. Du kannst
    schnell eingeben und organisieren
    Transaktionen ich ...
    Laden Sie Firefly III herunter
  • 3
    Apache OpenOffice-Erweiterungen
    Apache OpenOffice-Erweiterungen
    Der offizielle Katalog von Apache
    OpenOffice-Erweiterungen. Du wirst es finden
    Erweiterungen reichen von Wörterbüchern bis zu
    Tools zum Importieren von PDF-Dateien und zum Verbinden
    mit ext...
    Laden Sie die Apache OpenOffice-Erweiterungen herunter
  • 4
    MantisBT
    MantisBT
    Mantis ist ein einfach bereitzustellendes Web
    basierter Bugtracker zur Behebung von Produktfehlern
    Verfolgung. Es erfordert PHP, MySQL und a
    Webserver. Testen Sie unsere Demo und gehostet
    biete...
    Laden Sie MantisBT herunter
  • 5
    LAN Messenger
    LAN Messenger
    LAN Messenger ist eine P2P-Chat-Anwendung
    für die Intranetkommunikation und nicht
    einen Server benötigen. Eine Vielzahl von handlichen
    Funktionen werden unterstützt, einschließlich
    Benachrichtigung...
    Laden Sie den LAN-Messenger herunter
  • 6
    DrJava
    DrJava
    DrJava ist eine leichtgewichtige Programmierung
    Umgebung für Java entwickelt, um zu fördern
    Testgetriebene Softwareentwicklung. Es
    enthält einen intelligenten Programmeditor,
    ein int...
    Laden Sie DrJava herunter
  • Mehr »

Linux-Befehle

Ad