prisrak
Teammitglied
- Registriert
- 4. Mai 2010
- Beiträge
- 5.459
- Lösungen
- 26
- Reaktionspunkte
- 16.174
- Punkte
- 413
Was wird hier gemacht und welches Ergebnis kommt am Schluss raus? Freetz-ng-24911MOA-e63341b180
Das Skript analysiert die Versions- und Änderungsinformationen eines Softwareprojekts, das entweder mit Subversion (SVN) oder Git verwaltet wird. Es gibt je nach Eingabeparameter unterschiedliche Informationen aus, etwa die aktuelle Revision, den Git-Hash, die Anzahl der Änderungen oder spezifische Attribute des Projekts.
Beispielausgabe (je nach Parameter):
Das Skript analysiert die Versions- und Änderungsinformationen eines Softwareprojekts, das entweder mit Subversion (SVN) oder Git verwaltet wird. Es gibt je nach Eingabeparameter unterschiedliche Informationen aus, etwa die aktuelle Revision, den Git-Hash, die Anzahl der Änderungen oder spezifische Attribute des Projekts.
Aufbau und Funktionsweise:
- Initialisierung:
- DIR wird auf das übergeordnete Verzeichnis des Skripts gesetzt.
- Parameterprüfung:
- Wenn der Parameter $1 mit t beginnt, wird das Datum der letzten Änderung in UNIX-Zeit (Ticks) ausgegeben:
- SVN: Das letzte Änderungsdatum.
- Git: Der Zeitstempel des letzten Commits.
- Das Skript beendet sich danach.
- Wenn der Parameter $1 mit t beginnt, wird das Datum der letzten Änderung in UNIX-Zeit (Ticks) ausgegeben:
- Projektanalyse:
- Falls SVN genutzt wird:
- Es prüft die aktuelle Branch (Relative URL) und die Revision (svnversion).
- Änderungen am Arbeitsverzeichnis werden berücksichtigt (svn status).
- Falls kein Git-Commit verknüpft ist, markiert es die Revision als "INVALID".
- Falls Git genutzt wird:
- Es prüft den Branch (git rev-parse) und ob es nicht eingepflegte Änderungen gibt.
- Es berechnet die Anzahl der Commits seit dem letzten Push.
- Falls der aktuelle Branch HEAD oder master ist, wird die Revision entsprechend angepasst.
- Die Kurzversion des letzten Commits (10 Zeichen) wird als Hash extrahiert.
- Falls SVN genutzt wird:
- Spezielle Kennzeichen:
- Zusatzkennzeichen wie O, F, A, S oder I werden basierend auf bestimmten Projektzuständen angehängt (z. B. benutzerdefinierte Konfigurationen, spezielle Addons, Symlinks etc.).
- Ausgabeformat:
- Abhängig vom Parameter $1 gibt das Skript unterschiedliche Formate aus:
- short: Kurze Zusammenfassung.
- make: Ein Label in der Form Freetz-NG-Version.
- Sonst: Detaillierte Versionsinfo (inkl. Hash, Branch und Datum).
- Abhängig vom Parameter $1 gibt das Skript unterschiedliche Formate aus:
Ergebnis:
Das Ergebnis ist eine zusammengefasste Versionsinformation des Projekts in unterschiedlichen Formaten.Beispielausgabe (je nach Parameter):
- ticks: 1698643200 (Zeitstempel der letzten Änderung).
- short: 1234-abcdef1234-trunk (Revision-Hash-Branch).
- make: Freetz-NG 1234-abcdef1234-trunk.
- default: 1.0.0-1234-abcdef1234 trunk 2024-11-23 (Version, Revision, Hash, Branch, Datum).