Mittwoch, 18. November 2020

Schreibe einen Patch

da ich jedes mal wieder überlegen und basteln muss - hier ein kurzes Howto - aufbauend auf das HowTo im Wiki.

Am einfachsten nimmt man sich vielleicht irgendeine virtuelle Maschine mit debian drauf. 

Man benötigt dafür keinen SVN Account!

Was man braucht ist nur ein Tool:

sudo apt update
sudo apt install subversion

Dann erstellt man eine Arbeitskopie im aktuellen User Home Directory.

svn checkout https://svn.fhem.de/fhem/trunk/fhem ~/fhem-code

Jetzt macht man seine gewünschte Änderung, am einfachsten mit nano (hier gibt es ein paar nützliche Tastenkürzel) Zum arbeiten macht es sich einfacher, wenn man im aktuellen "Working-Copy" Directory steht! Nach getaner Änderung lässt man sich den Patch anzeigen:

cd ~/fhem-code
svn diff

bzw. erstellt man gleich eine patch Datei in seinem Homeverzeichnis mit einem sprechenden Namen.

svn diff > ~/cref_motd.patch

Will man den Original Zustand der gesamten Arbeitskopie wiederherstellen:

svn revert --recursive .

Man kann die aktuellen Dateien aus dem SVN holen, treten Konflikte auf, kann man diese mit tf überschreiben.

svn update

Ein erneutes checkout holt zwar Änderungen vom Server, überschreibt aber lokale Änderungen nur wenn neue Versionen auf dem Server vorliegen!

Den eigene Patch wieder anwenden und testen:

svn patch ~/cref_motd.patch

Ist man fertig und kann von der Maschine nicht veröffentlichen, kopiert man sich das schnell auf den Arbeits PC:

scp ~/cref_motd.patch user@host:

Code Einchecken

Wie es geht steht hier im Wiki. Die Einrichtung der Umgebung steht auf der Webseite. Ich brauche nur trunk/fhem .
cd ~/fhem-ssh
svn update

Man kann den Code komfortabel mit notepad++ und dem NppFTP Plugin von Windows aus über ssh auf einer linux Umgebung editieren. 

Hat man die Änderungen fertig und getestet, erfolgt nochmal eine Überprüfung auf Konflikte mit eventuellen aktuellen Änderungen und dann commit. 

svn diff
svn commit -m "Dateiname:Beschreibung"

Da man dies selten tut, kann man die alten Befehle aus der Versenkung holen: 

history|grep 'svn'
grep "svn co " ~/.bash_history

Man kann sich vom aktuellen Pfad oder von einem anderem Pfad auch den Stand anzeigen lassen:

svn info
svn info ~/fhem-neu

...

Keine Kommentare:

Kommentar veröffentlichen