Hinweis an alle Modulentwickler: fehlende $Id$ SVN Ersetzung in 9 Modulen

Begonnen von Markus Bloch, 13 Januar 2016, 19:38:53

Vorheriges Thema - Nächstes Thema

Markus Bloch

Hallo zusammen,

im Rahmen von r10473 wurde der SVN pre-commit Hook um eine Prüfung auf eine aktivierte $Id$ Keyword-Ersetzung ergänzt.

Dies bedeutet, dass ohne vorhandenen $Id$ Platzhalter als Kommentar im Perl-Code und dem Eintrag von "Id" in die SVN Property svn:keywords des entsprechenden Moduls, dieses nicht mehr eingecheckt werden kann.

Die SVN Property "Id" kann man wiefolgt setzen:

svn propset svn:keywords Id [MODULNAME].pm

In TortoiseSVN geht das wie folgt: Rechtsklick auf Moduldatei-> TortoiseSVN -> Properties -> New -> Keywords -> ID -> OK

Im Modul (am besten als erste Zeile) muss folgender Inhalt sein:

# $Id$

Sobald dies durchgeführt ist, kann das Modul wieder commitet werden und SVN ersetzt $Id$ durch beispielhaft folgende Zeile:

# $Id: 98_version.pm 10475 2016-01-12 18:51:31Z markusbloch $

Hier eine Liste der betroffenen Module:  [Stand: 10.03.2016 17:13]


14_CUL_REDIRECT.pm
14_CUL_TCM97001.pm
19_Revolt.pm
38_JawboneUp.pm
42_SMARTMON.pm
70_Jabber.pm
88_LINDY_HDMI_SWITCH.pm
98_pilight.pm
MaxCommon.pm


Bitte die oben genannten Schritte durchführen, damit ihr wieder Änderungen für eure Module einchecken könnt. Das ganze muss einmalig für die gelisteten Module gemacht werden und ist in wenigen Minuten erledigt.

Viele Grüße

Markus
Developer für Module: YAMAHA_AVR, YAMAHA_BD, FB_CALLMONITOR, FB_CALLLIST, PRESENCE, Pushsafer, LGTV_IP12, version

aktives Mitglied des FHEM e.V. (Technik)

Dr. Boris Neubert

Hallo,

ich schlage vor, alle Module, bei denen die Id nicht bis Ende Februar gesetzt wird, nach vorheriger Ankündigung als verwaist zu erklären und nach contrib zu exilieren.

Viele Grüße
Boris
Globaler Moderator, Developer, aktives Mitglied des FHEM e.V. (Marketing, Verwaltung)
Bitte keine unaufgeforderten privaten Nachrichten!

betateilchen

Dafür sind viel zu viele "aktuelle" Module in der Liste enthalten. Das Setzen einer Frist bis Ende Februar halte ich nicht für sinnvoll. Durch die fehlende $ID entstehen keine Fehler bei den Anwendern und nur, weil ein Entwickler seit längerer Zeit nichts an seinem Modul geändert hat, heißt es doch noch lange nicht, dass es verwaist ist.

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

John

23_KostalPiko
98_HourCounter
98_MaxScanner

habe ich bezüglich ID nachgeführt.

John
CubieTruck Docker Node-Red Tasmota Shelly Homematic-IP

Sailor

Hallo Markus

Zitat von: Markus Bloch am 13 Januar 2016, 19:38:53
Im Modul (am besten als erste Zeile) muss folgender Inhalt sein:
# $Id$

Sobald dies durchgeführt ist, kann das Modul wieder commitet werden und SVN ersetzt $Id$ durch beispielhaft folgende Zeile:

# $Id: 98_version.pm 10475 2016-01-12 18:51:31Z markusbloch $

Frage: Warum verweigert mir der Subversion - Checker das hochladen einer Datei mit der Fehlermeldung "Id property not set in svn:keywords", wenn folgendes in der ersten Zeile steht:
# $Id: 73_GasCalculator.pm 0006 2016-01-21 00:00:00Z Matthias_Deeke $

Siehe Anhang

Gruß
    Sailor
******************************
Man wird immer besser...

Markus Bloch

Hallo Sailor,

das einfügen einer solchen Zeile ist nur die Hälfte. Du pflegst diese warscheinlich manuell. Das ist aber nicht der Sinn dahinter, sondern SVN soll das automatisch machen.

Du musst den $Id$-Platzhalter auch aktivieren, damit SVN beim commit diesen automatisch durch die aktuellen Daten (Revision, Datum, Autor) ersetzt.

Im meinem Initial-Beitrag steht dazu folgendes:

Zitat von: Markus Bloch am 13 Januar 2016, 19:38:53
Die SVN Property "Id" kann man wiefolgt setzen:

svn propset svn:keywords Id [MODULNAME].pm

Wenn du das ausführst, wird deine $Id$-Zeile von SVN erkannt und entsprechend  bei einem commit gesetzt.

Viele Grüße

Markus
Developer für Module: YAMAHA_AVR, YAMAHA_BD, FB_CALLMONITOR, FB_CALLLIST, PRESENCE, Pushsafer, LGTV_IP12, version

aktives Mitglied des FHEM e.V. (Technik)

Sailor

Hallo Markus

danke für deine schnelle Antwort! :)

Zitat von: Markus Bloch am 22 Januar 2016, 08:47:40
Du pflegst diese warscheinlich manuell.

Korrekt

Zitat von: Markus Bloch am 22 Januar 2016, 08:47:40
Das ist aber nicht der Sinn dahinter, sondern SVN soll das automatisch machen.
Du musst den $Id$-Platzhalter auch aktivieren, damit SVN beim commit diesen automatisch durch die aktuellen Daten (Revision, Datum, Autor) ersetzt.

Im meinem Initial-Beitrag steht dazu folgendes:

Wenn du das ausführst, wird deine $Id$-Zeile von SVN erkannt und entsprechend  bei einem commit gesetzt.

Also entweder bin ich zu dämlich oder ich habe etwas übersehen.  8)

Wenn ich den Befehl
svn propset svn:keywords Id 73_GasCalculator.pm
sowohl in fhem als auch in der RasPi Konsole im Verzeichnis /opt/fhem/FHEM ausführe, wird svn nicht erkannt.

Ich greife auf das repository immer unter Windows mit TortoiseSVN zu und dort kann ich einen entsprechende Aufforderung nicht finden.

Verwendet Ihr andere Tools zum hochladen?

Gruss
    Sailor

******************************
Man wird immer besser...

Markus Bloch

Hallo Sailor,

im TortoiseSVN ist das etwas versteckt. Schau mal, ob das hier hilft: http://www.aliaspooryorik.com/blog/index.cfm/e/posts.details/post/keyword-substitution-with-tortoisesvn-176

Auf dem Raspberry ist der svn Befehl nur verfügbar, wenn man das Paket "subversion" installiert hat. Das bringt aber nichts, wenn du FHEM dort nicht vom trunk ausgecheckt hast.

Ich persönlich (und warscheinlich viele andere) nutze den svn Befehl aus dem Paket subversion direkt auf der Konsole.

Gruß
Markus
Developer für Module: YAMAHA_AVR, YAMAHA_BD, FB_CALLMONITOR, FB_CALLLIST, PRESENCE, Pushsafer, LGTV_IP12, version

aktives Mitglied des FHEM e.V. (Technik)

Sailor

Hallo Markus

Zitat von: Markus Bloch am 22 Januar 2016, 09:31:36
im TortoiseSVN ist das etwas versteckt. Schau mal, ob das hier hilft: http://www.aliaspooryorik.com/blog/index.cfm/e/posts.details/post/keyword-substitution-with-tortoisesvn-176
Auf dem Raspberry ist der svn Befehl nur verfügbar, wenn man das Paket "subversion" installiert hat. Das bringt aber nichts, wenn du FHEM dort nicht vom trunk ausgecheckt hast.

Danke, das wars!

Habe es soeben eingecheckt!

Gruß
    Sailor
******************************
Man wird immer besser...

Markus Bloch

Zitat von: Sailor am 22 Januar 2016, 10:53:42
Hallo Markus

Danke, das wars!

Habe es soeben eingecheckt!

Gruß
    Sailor

Super, bitte überprüf auch alle anderen Module, welche du betreust, damit diese auch korrekt gesetzt sind.

Grüße

Markus
Developer für Module: YAMAHA_AVR, YAMAHA_BD, FB_CALLMONITOR, FB_CALLLIST, PRESENCE, Pushsafer, LGTV_IP12, version

aktives Mitglied des FHEM e.V. (Technik)

Sailor

Hallo Markus,

Zitat von: Markus Bloch am 22 Januar 2016, 11:04:07
Super, bitte überprüf auch alle anderen Module, welche du betreust, damit diese auch korrekt gesetzt sind.

Das km200 Modul habe ich gleich in einem Atemzug gemacht!  ;)

Gruß
    Sailor
******************************
Man wird immer besser...

Sailor

Hallo Markus

Zitat von: Markus Bloch am 22 Januar 2016, 09:31:36
Auf dem Raspberry ist der svn Befehl nur verfügbar, wenn man das Paket "subversion" installiert hat. Das bringt aber nichts, wenn du FHEM dort nicht vom trunk ausgecheckt hast.

Eine Frage an Dich, gibt es irgendwo ein Tutorial, wie ich ein bestehendes fhem System so in "subversion" auschecken kann ohne mein bestehendes system zu schrotten?

Irgendwann muss ich ja mal auf den Standard  umsteigen ;D

Danke

Gruss
    Sailor
******************************
Man wird immer besser...

Dr. Boris Neubert

Hallo Sailor,

Zitat von: Sailor am 23 Januar 2016, 14:40:26
Eine Frage an Dich, gibt es irgendwo ein Tutorial, wie ich ein bestehendes fhem System so in "subversion" auschecken kann ohne mein bestehendes system zu schrotten?

Du solltest Deine Entwicklungsumgebung tunlichst von der Produktionsumgebung getrennt halten und die Dateien, die Du im SVN-Repository ein- und auscheckst getrennt von den Dateien halten, auf denen FHEM läuft.

Ein gute Online-Quelle zu subversion ist hier:

http://svnbook.red-bean.com/

Viele Grüße
Boris
Globaler Moderator, Developer, aktives Mitglied des FHEM e.V. (Marketing, Verwaltung)
Bitte keine unaufgeforderten privaten Nachrichten!

Sailor

******************************
Man wird immer besser...

klausw

Hallo Markus,

für die Module:

Zitat von: Markus Bloch am 13 Januar 2016, 19:38:53

52_I2C_EEPROM.pm
52_I2C_MCP23008.pm
52_I2C_MCP342x.pm


hatte ich damals die entsprechende Prozedur ausgeführt.
Die Zeile wurde ja auch angelegt.

Wenn ich es erneut versuche (nutze Apache SVN unter Win) kommt folgendes:


C:\Users\klaus\!Programme\Apache-Subversion\svn add C:\Users\klaus\Documents\Projekte\FHEM_SVN\fhem\FHEM\52_I2C_EEPROM.pm
svn: warning: W150002: 'C:\Users\klaus\Documents\Projekte\FHEM_SVN\fhem\FHEM\52_I2C_EEPROM.pm' is already under version control
svn: E200009: Could not add all targets because some targets are already versioned
svn: E200009: Illegal target for the requested operation

C:\Users\klaus\!Programme\Apache-Subversion\svn propset svn:keywords "Id" C:\Users\klaus\Documents\Projekte\FHEM_SVN\fhem\FHEM\52_I2C_EEPROM.pm
property 'svn:keywords' set on 'C:\Users\klaus\Documents\Projekte\FHEM_SVN\fhem\FHEM\52_I2C_EEPROM.pm'


Bist du sicher das die Module nicht korrekt eingecheckt sind?
RasPi B v2 mit FHEM 18B20 über 1Wire, LED PWM Treiber über I2C, Luchtdruck-, Feuchtesensor und ein paar Schalter/LED\'s zum testen
Module: RPI_GPIO, RPII2C, I2C_EEPROM, I2C_MCP23008, I2C_MCP23017, I2C_MCP342x, I2C_PCA9532, I2C_PCF8574, I2C_SHT21, I2C_BME280