2010-07-29 12 views
8

In den Tagen vor einer Veröffentlichung möchten wir verhindern können, dass Entwickler Dateien in den SubVersion-Zweig übertragen, es sei denn, ein Teamleiter hat die Änderungen überprüft und genehmigt Fall würden sie eine vorübergehende Änderung vornehmen, um dies zu ermöglichen).Sperren eines SubVersion-Zweigs in den Tagen vor einem Release

Zuvor verwendeten wir ClearCase, in dem dies relativ einfach war.

Da der Befehl svn: lock nur pro Datei funktioniert, sind wir unsicher, ob wir dieses Verhalten in SubVersion emulieren können.

Was machen Sie?

Antwort

6

Sie können sich GUI svn Clients ansehen, die normalerweise eine umfangreichere Schnittstelle/Funktionalität haben als eine Befehlszeile. Zum Beispiel verwende ich TortoiseSVN, die Optionen hat Get Lock/Release Lock anwendbar zum Sperren aller Dateien im ausgewählten Ordner rekursiv. BTW, hat es auch bequeme Möglichkeit, Markierung/Verzweigung zu machen und als eine Handlung zu ihr zu schalten.

+0

Diese Antwort beantwortet meine Frage am besten, aber der Sperrmechanismus ist ziemlich langsam, da er rekursiv die Änderung an allen Dateien vornimmt. Daher bin ich mir nicht sicher, ob wir diesen Ansatz tatsächlich anwenden werden. –

+2

Richtig, wir verwenden SVN-Repository in unserer Arbeit ausgiebig und verwenden nicht Sperren. Wir haben Konventionen für trunk/tags/branches, also niemand verpflichtet sich zu Tags; wir machen nur Bug-Fixes in Release-Zweig und die gesamte Aktivität auf Projekt kann leicht durch WebSVN gesehen werden. – pmod

3

Sie können einen Pre-Commit-Hook auf dem Server hinzufügen, der überprüft, ob das Commit-Ziel geschlossene Zweige enthält, und möglicherweise ein Schlüsselwort in der Protokollnachricht, um diese Prüfung zu umgehen.

+3

Das Schlüsselwort sollte natürlich * Sesam * sein. – bzlm

13

Seitlich denken - warum nicht einfach einen Zweig an dem Punkt erstellen, an dem Sie ihn "sperren" wollen und nur diese Revisionsnummer in Ihrem Build/Release-Prozess auschecken.

Dann können Entwickler immer noch in den Stamm einchecken (oder in einen anderen Zweig, an dem sie arbeiten) und wenn ein Teamleiter Änderungen für das Release genehmigt, können sie in den Zweig integriert werden. Zugegeben, das "sperrt" den Release-Zweig nicht wirklich, aber zumindest kann man Änderungen leicht nachverfolgen/rückgängig machen, wenn es nötig ist, und es verhindert nicht, dass Leute arbeiten. Die Quelle der Entwickler zeigt immer noch auf die Verzweigung/den Stamm, an der sie gearbeitet haben, anstatt auf den neuen Versionszweig.

Erstellen von Filialen ist sehr günstig und einfach in SVN (glaube ich).

0

Wir verschieben die Verzweigung zu einem Tag und haben nur Lesezugriff auf das Tag.

Verwandte Themen