Alexander (HH): Bei "svn update" JS-Minifizierung anstoßen

Beitrag lesen

Moin Moin!

Nabend

Wozu willst Du Dir das Leben schwer machen? Wenn Du beim Update die Dateien minimierst, ist das Original WEG.

Nein, das "svn update" läuft vom Repository auf den Webserver. Es gibt kein "svn commit" von seiten des Webservers. Die minifizierten Versionen würden also nur auf dem Webserver liegen. Die Sourcen im Repository blieben unangetastet.

Ja, hast recht, irgendwie hab ich das Update die ganze Zeit als Commit gelesen. Von daher war das Quatsch.

Du nutzt aber hier das falsche Kommando. Du willst kein Update mit SVN-Strukturen im Verzeichnis, sondern einen Export, der nur die Nutzdaten, ohne SVN-Strukturen, schreibt. Die SVN-Strukturen haben auf dem Webserver nichts verloren.

Und wie gesagt, überlasse einem Script den Upload auf den Webserver, dann kannst Du auch noch jede Menge Optimierungen und Vorberechnungen erledigen, bevor die Dateien auf dem Webserver landen.

Grober Ansatz:

  
#!/bin/sh  
  
# Sauberer Export:  
rm -rf upload-temp  
svn export svn+ssh://user@svnserver/svn/projekt0815/trunk upload-temp  
  
# Nacharbeiten:  
some-minimizer --aggressive --in-place upload-temp/static/biglib.js  
other-minimizer -x -y -z < upload-temp/static/design.css > design-min.css  
mv design-min.css upload-temp/static/design.css  
  
# Vorberechnungen:  
seach-indexer --scan --root=upload-temp --out=upload-temp/private/search-index.bin  
  
# Aufräumarbeiten:  
rm -rf upload-temp/non-server-stuff  
  
# Upload  
rsync -av --delete --rsh=ssh upload-temp/ admin@webserver:/var/www  

Das Upload-Script packst Du natürlich mit ins Repository, weil Du zwischen svn export und rsync vermutlich öfters eingreifen wirst.

Für meinen Geschmack sauberer wäre es, alle Nacharbeiten in einem Target im Haupt-Makefile zu erschlagen, etwa so:

  
#!/bin/sh  
  
# Sauberer Export:  
rm -rf upload-temp  
svn export svn+ssh://user@svnserver/svn/projekt0815/trunk upload-temp  
  
# Nacharbeiten, Vorberechnungen, Aufräumarbeiten:  
make -C upload-temp prepare-upload  
  
# Upload  
rsync -av --delete --rsh=ssh upload-temp/ admin@webserver:/var/www  

Und der nächste Evolutionsschritt wäre, den Export und den rsync-Lauf auch noch als Targets ins Makefile zu packen um schließlich nur noch "make upload" tippen zu müssen.

Alexander

--
Today I will gladly share my knowledge and experience, for there are no sweeter words than "I told you so".