Zum Inhalt springen

Extension Update per EM wenn unter SVN nicht möglich

Erstellt am 28. August 2006 · 1 Antwort · letzte Antwort am 26. Januar 2011

Tags: Frage

tpinne ·

Hallo zusammen,

meine Entwicklungs-TYPO3-Umgebung steht komplett unter den Augen von Subversion. Das allerdings bereitet mir ein Problem beim Update von Extensions über den Extension Manager. Denn wenn ich ein Update einer Extension installieren möchte, versucht der EM als erstes das komplette Verzeichnis der Extension zu löschen, um dann die neuen Sourcen einzuspielen. Allerdings hakt er da bei dem Subversion Ordner. Zum einen darf er den nicht löschen, und da er zum anderen auch nicht alles löschen kann, bricht der Updatevorgang mit mehreren PHP-Fehlermeldungen ab.

Hat jemand auch dieses Problem und es lösen können?

Besten Dank
Tobias

gabrielschreiber ·

Hallo Tobias,

ich habe es gerade schon in einem anderen Thread gepostet (#88691) aber hier noch mal auf Deine Frage bezogen:
Du musst auf jeden Fall die Subversion Ordner löschen lassen, sonst wird es immer Fehler geben, bzw. wird die Extension nie installiert werden können. Das zieht jedoch andere Probleme mit Subversion nach sich.

So werden Fehler der Form Server sent unexpected return value (405 Method Not Allowed) in response to MKCOL request for ... oder so was in der Art, produziert. Es fehlen ja jetzt die .svn - Verzeichnisse!

Völlig ausgeschlossen, dass man es "subversion-style" (also nur die Änderungen) einchecken kann, auch wenn die Verzeichnisse und Dateien gleich oder ähnlich sind. Mittels ein paar Tricks kann man es jedoch dennoch bewerkstelligen, dass es funktioniert:

* Das Exteinsonverzeichnis (nennen wir es mal extensionverzeichnis) löschen mittels rm -r extensionverzeichnis
* Mittels des Backends die Extension installieren bzw. die gewünschte Version einspielen.
* Das Extension Verzeichnis umbenennen in z.B. extensionverzeichnis.tempFromRepository oder ähnlich
* Mit svn up extensionverzeichnis das "alte" Extensionverzeichnis wieder aus dem Repository laden.
* Mittels des Befehls find . \! \( -path *svn* \) -type f -exec rm {} \; alle Dateien in dem Extension Verzeichnis löschen, nicht jedoch die .svn-Dateien.
* Jetzt kommt der Trick: In das Verzeichnis extensionverzeichnis wechslen und mittels rsync-Befehl die neuen Dateien in dieses "geleerte" alte (unter Subversion verwaltete Verzeichnis) "reinsyncronisieren". Hier der Befehl dazu: rsync -av --stats ../extensionverzeichnis.tempFromRepository/* .
* Jetzt kann ganz normal mit den Befehlen svn add, svn commit, svn del und svn stat gearbeitet werden.

Liebe Grüße,
Gabriel