Update - Befehl geändert?

Begonnen von Elektrolurch, 05 Mai 2015, 12:41:12

Vorheriges Thema - Nächstes Thema

Elektrolurch

Hallo,

seit einigen Tagen meldet mir "update check" das eine Reihe von Dateien in

www/images/*/...

aktualisiert werden würden.

Es handelt sich dabei um eine Reihe  von svg-Icon-Dateien, die ich ca. vor einem Jahr mit dem Editor geändert habe.
Das Änderungsdatum liegt also definitiv vor dem Zeitpunkt, seit dem "update check" behauptet, dass diese Dateien aktualisiert werden müssten.

Fragen:
1. Wie wird ermittelt, dass Dateien zu aktualisieren sind?
2. Ich habe schon versucht mit "touch" das Änderungsdatum auf heute zu setzen, fhem würde aber weiterhin diese Dateien aktualisieren und mir so überschreiben. Wie kann ich das verhindern? Jedesmal den alten Stand zurückschreiben, ist etwas lästig.

Gruß

Elektrolurch
configDB und Windows befreite Zone!

rudolfkoenig

Bis vor kurzem hat update nur die lokale controls_fhem.txt Datei mit der von fhem.de verglichen, und die Unterschiede anhand dieses Vergleichs berechnet.

Neuerdings wird auch die Groesse der lokalen Datei im Filesystem geprueft, da es immer wieder Probleme gab, die nur mit einem "update force" loesbar waren.

Wenn jemand fuer bestimmte Dateien kein update wuenscht, der muss diese in exclude_from_update eintragen (attr global).

Elektrolurch

Danke, gute Erklärung und das erklärt auch mein Problemchen und es gibt auch eine Lösung.
Danke noch Mal.
Elektrolurch
configDB und Windows befreite Zone!

betateilchen

Im Zusammenhang mit 98_update.pm schlage ich folgenden Patch vor, damit man während eines Updates die Chance hat, ausgeschlossene Dateien zu erkennen. Manchmal sucht man lange nach einer Ursache, warum ein File nicht per update aktualisiert wird, bis man irgendwann darauf kommt, dass die Datei in exclude_from_update enthalten ist.

Eine übersprungene Datei wird durch diesen Patch mit "IGN <fileName>" protokolliert.

Index: FHEM/98_update.pm
===================================================================
--- FHEM/98_update.pm   (revision 8551)
+++ FHEM/98_update.pm   (working copy)
@@ -191,6 +191,7 @@
       $isExcl = 1 if($fName =~ m/$ex/);
     }
     if($isExcl) {
+      uLog 1, "IGN $fName";
       uLog 4, "update: skipping $fName, matches exclude_from_update";
       next;

     }
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

rudolfkoenig

Warum nicht einfach loglevel von 4 auf 1 aendern?

betateilchen

Weil mir die Ausgabe im Eventmonitor völlig ausreichen würde.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

ext23

Nabend,

aha gut zu wissen und ich habe mich schon gewundert wieso genau die Module die ich per Hand anpassen muss jeden Tag aufs Neue im Update gelistet sind. Finde ich persönlich keine so glückliche Änderung. Selbst wenn die die entsprechenden Module "ausschließe" bekomme ich ja nicht mehr mit wenn wirklich ein Update dabei ist. Aber gut der Patch unten ist ja schon mal gut, aber dann muss ich das Modul auch gleich ausschließen was ;-)

Gruß
Daniel
HM, KNX, FS20, 1-Wire, PanStamp, AVR-NET-IO, EM1000EM, PCA301, EC3000, HM-LAN, CUL868, RFXtrx433, LGW, DMX @Ubuntu-Server (Hauptsystem) & Raspberry Pi (Satellit)

betateilchen

Tja, ich finde die vorgenommene Änderung, auch die Dateigröße als Kriterium für eine Zwangsaktualisierung heranzuziehen, auch mehr als unglücklich  :(

-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

rudolfkoenig

ZitatWeil mir die Ausgabe im Eventmonitor völlig ausreichen würde.
Die andere Zeile kommt mit loglevel 1 auch im Eventmonitor, und da es deutlich auffaelliger ist, als IGN statt UPD, habe ich das loglevel der alten Zeile angepasst. Da kann sich Daniel auch nicht mehr beschweren.

ZitatTja, ich finde die vorgenommene Änderung, auch die Dateigröße als Kriterium für eine Zwangsaktualisierung heranzuziehen, auch mehr als unglücklich  (http://forum.fhem.de/Smileys/default/sad.gif)
Dazu haette ich gerne sachliche Argumente.
Ich will gegen dem "falls Du ein Problem mit update hast, verwende update force" Wahn vorgehen, und ich hatte bisher keine auswertbaren Hinweise, wann das Problem auftritt. Jeder, der etwas lokal modifiziert, sollte es in exclude_from_update eintragen, ich finde das eine einfache und klare Regel, auch aus der Support Sicht.

betateilchen

Zitat von: rudolfkoenig am 10 Mai 2015, 09:25:09
Ich will gegen dem "falls Du ein Problem mit update hast, verwende update force" Wahn vorgehen,

Das verstehe ich durchaus.

Dann bau doch nur das "update force" dahingehend um, dass auch die Dateigröße herangezogen wird und lass das reguläre update wie es früher war. Der Anteil der Leute, die tatsächlich Probleme beim Update haben und denen deshalb zu "update force" geraten wird, ist doch verschwindend gering, ich schätze unter 1%. Aber wegen dieser kleinen Gruppe hast Du nun für die Mehrheit der Anwender das update so umgebaut, dass auf Anwenderseite wieder Mehrarbeit (exclude_from_update nutzen) notwendig wird. Das finde ich schon reichlich "unfair" gegenüber den Anwendern, die gar kein update-Problem an sich haben.

-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

rudolfkoenig

Bin mit deinem Vorschlag nicht einverstanden:
- die Loesung kann nicht sein, dass update force abgeschwaecht wird, und de fakto zu den aktuellen update ohne force umgebaut wird. Wie gesagt, ich will, dass update funktioniert, und update force normalerweise nicht verwendet wird.
- es wurde bisher nirgendwo versprochen, dass update lokale Dateien nicht neu schreibt, es sei denn, es ist in exclude_from_update eingetragen. Wer herumbastelt, sollte eh nicht fhem update sondern svn update verwenden.

betateilchen

Mach wie Du denkst. Anwenderfreundlich finde ich Deinen vorgenommenen Umbau jedenfalls nicht.

Würde "update" wirklich korrekt funktionieren, wäre übrigens weder ein "update force" noch Deine Hilfskrücke mit dem Größenvergleich überhaupt notwendig. Aber das Ziel, "update" zu einer korrekten Funktion zu bringen, wirst Du auch mit dem Größenvergleich nicht wirklich erreichen. Wieviele Krücken, die den Anwendern das Leben schwermachen, willst Du dann noch einbauen?

Die meisten Problem beim Update treten doch aufgrund der http Kommunikation auf und nicht, weil das update-Modul nicht funktionieren würde.

Kompromißvorschlag: Mach den Größenvergleich als Parameter für ein update bitte abschaltbar.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

Tom_S

#12
Ich finde die jetzige Lösung auch nicht so gut. Da ich auch ein paar Kleinigkeiten geändert habe, werden meine Änderungen jetzt mit jedem Update überschrieben. Es handelt sich ja nicht wirklich um ein Update, sondern um ein wiederherstellen des Originalzustand.
Mit exclude_from_update bekomme ich allerdings auch nicht mehr mit, wenn es wirklich ein Update gab.
ZitatKompromißvorschlag: Mach den Größenvergleich als Parameter für ein update bitte abschaltbar.
wenn es nicht zu aufwändig ist, wären ich damit auch zufrieden.

oder noch einen Schalter "update all"

LG
RaspberryPI2 + pilight, 3x AVR-NetIO, LW12, LW12HX, LW12FC; MAX-Lan, ESP8266, Arduino, H801, Neopixel, Solaredge, Modbus

Elektrolurch

Was spricht dagegen, statt der Größe das Änderungsdatum zu verwenden?
Alles was in der fhem-Installation neuer ist, wird nicht überschrieben.
configDB und Windows befreite Zone!

Benni

Zitat von: Elektrolurch am 11 Mai 2015, 12:28:07
Was spricht dagegen, statt der Größe das Änderungsdatum zu verwenden?
Alles was in der fhem-Installation neuer ist, wird nicht überschrieben.

Quasi als "touch and go" - Lösung  ;D
(Sorry, aber den Kalauer konnte ich mir jetzt echt nicht verkneifen.)

Ansonsten finde ich Rudis Argumentation völlig in Ordnung: Wer lokal Änderungen an Dateien vornimmt, die normalerweise per Update ausgeliefert werden, sollte diese auch selbst schützen.

Gruß Benni.