Frage

Ich möchte eine Reihe von Dateien, die als Zip-Dateien erstellt werden und XML-Dateien enthält, Quellverwaltung haben.

Da diese Dateien derzeit so überprüft werden, werden sie als Binärdateien mit allen offensichtlichen Einschränkungen behandelt

Da diese Dateien XML -Dateien enthalten, um zu vermeiden, dass die Programmierer zum Zip / Unzip sind, möchte ich das Folgende automatisch tun

Für Check-Ins: explodieren Sie automatisch die Dateien:

  • Diese Dateien haben eine eindeutige Erweiterung, daher für jede Datei, die mit dieser Erweiterung eingecheckt wurde
  • Entpacken Sie diese Datei an Speicher- / Temperaturspeicherort
  • Für jede dieser Dateien (XML) normalisieren Sie sie (zum Vergleich / Zusammenführen)
    • Ordnen Sie die direkten untergeordneten Kinderknoten in einer vordefinierten Reihenfolge nach (z. B. alphabetisch)
    • Einige Elemente haben lokale Referenz -IDs, schreiben Sie die IDs nach der Sortierung neu um
  • Erstellen Sie einen Ordner in SVN mit demselben Namen wie die ursprüngliche Reißverschlussdatei
  • Überprüfen Sie die Dateien im ZIP in diesem Ordner

Für Check-outs: automatisch die Dateien neu verpacken:

  • Weniger wichtig - kann mit Maven / Ant durchgeführt werden
  • Beim Überprüfen des explodierten Ordners (oder eines seiner Inhaltsdateien)
  • Anstatt diesen Ordner / die Dateien zu überprüfen:
  • Zip alle Dateien in diesem Ordner
  • Und schauen Sie sich die Reißverschlussdatei an

Für Zusammenführungen

Ich gehe davon aus, dass die Zusammenführung keine SVN -Serverseite ist und die Verantwortung des Kunden ist. Es gibt also eine einfache Möglichkeit, stattdessen ein Merge -Plugin zu schreiben (z. B. für Schildkröten).

Ist das oben genannte möglich? Wenn ja, wie? Gibt es mehr als einen Weg?

War es hilfreich?

Lösung

Anstatt den Vor-/Post -Checkin -Hook zu komplizieren, der eine Wrapper um die Anwendung schreiben, die diese Zip -Dateien erstellt, wäre es einfacher. Der Wrapper muss alle Dateien entpacken und in einem Ordner bereitstellen.

Der andere Weg ist das, was Sie beschrieben haben. Die Komplexität besteht jedoch darin, einen Auslöser für alle Zip -Dateien zu tun. Möglicherweise erhalten Sie einen weiteren Filter im Auslöser, um dies nur für Dateien aus bestimmten Ordnern zu tun, und müssen diese Ordner in einer separaten DB verwalten. Um diese Komplexitäten zu vermeiden, schreiben Sie einen Wrapper um die Anwendung.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top