2009-03-31 2 views
3

Ich habe ein Java - Projekt in einem SVN - Repository, mit einer Reihe von. Java - Dateien, jede dieser Dateien hat eine Lizenzvereinbarung Blumenkasten an der Spitze der Datei (Ich habe Kunden, die die Quelle lizenziert haben und die Produkt).Eine gute Lösung, um einen Vorlagentext mithilfe von SVN in eine Quelldatei einzufügen?

Gibt es eine gute Möglichkeit, den Lizenztext an einer Stelle ändern/verwalten zu können, anstatt alle Quelldateien manuell zu aktualisieren, wenn sich diese ändern?

Wenn man sich einige ähnliche (aber nicht identische) Fragen anschaut, scheint es so, als ob SVN diese Funktionalität nicht out-of-the-box hat - welche anderen Ansätze wären am besten geeignet?

Bearbeiten: Im Idealfall würde die Lösung wie die SVN Keywords (Id, Autor etc.) handeln, anstatt eine Build-Time-Lösung. Der Kunde hat auch Zugriff auf das SVN-Repository, daher wäre es ideal, wenn der Lizenztext in der SVN-Version der Datei vorhanden wäre. Ich weiß, SVN hat Commit-Trigger - was ist eine einfache Möglichkeit, das zu implementieren?

Edit 2: Mit Blick auf die SVN-Haken sieht es nicht wie das, was ich gerne tun würde, ist möglich. Ich denke, Build-Prozess, der ausgeführt werden kann, wenn der Text sich ändert, ist in Ordnung - da es nicht zu oft ändern wird.

+0

Benötigen Ihre Kunden sofortigen Zugriff auf die Quelle, oder wäre eine kleine Verzögerung wie eine Stunde zwischen Festschreibung und Verfügbarkeit akzeptabel? –

+0

Das wäre wahrscheinlich akzeptabel - würden Sie einen Job vorschlagen, um das SVN-Repository zu spiegeln und die Änderungen zu übernehmen (mit Ant oder etwas)? –

Antwort

3

Ändern Sie die Quelldateien, die den Text der Lizenz enthalten müssen, um stattdessen ein Token zu enthalten, und verschieben Sie dann den Lizenztext in eine einzelne Datei, die in Subversion verbleibt. Fügen Sie als Teil Ihres Erstellungsprozesses einen Schritt hinzu, der den Text der Lizenz für das Token ersetzt. Bei meiner Arbeit mache ich etwas in dieser Richtung mit einer Kombination aus sed und make. Sie können diesen einen Schritt dann ausführen, bevor Sie die Quelle an Ihre Kunden verteilen.

1

ANT kann die Substitution leicht durchführen. Schauen Sie in das Ziel <copy>.

Verwandte Themen