Subversion
Wenn drupal oder bestimmte Module unter Versionskontrolle mittels Subversion gestellt sind, können Patches mit dem eingebauten Befehl diff erstellt werden.
Die Eingabe des folgenden Befehls im Verzeichnis der Arbeitskopie erzeugt einen Patch auf Basis der Unterschiede zwischen der letzten Version (HEAD) und der Arbeitskopie.
svn diff > dateiname.patch
Wenn inkrementell gearbeitet wird, also häufig Änderungen am lokalen Subversion Repository gemacht werden und Patches erstellt werden sollen, die die Unterschiede zwischen dem originalen Modul (initialer Import oder Version 1) und der Arbeitskopie betrachten, kann dieser Befehl verwendet werden:
svn diff -r1> dateiname.patch
Die Ausgabe des in Subversion enthaltenen diff Befehls enthält nicht die Funktionsnamen, so dass ein Review dieser Patches schwieriger ist.
Dies kann umgangen werden, indem man das eingebaute diff mit einem externen diff Programm ersetzt. UnxUtils enthält ein eigenständiges Windowsprogramm, das genau dafür gemacht ist.
- UnxUtils in ein geeignetes Verzeichnis installieren, z.B.
C:\unxutils
- Eine Batchdatei (
diffup.bat
) im Installationsverzeichnis von UnxUtils erstellen:
@echo off<br/>c:\unxutils\user\local\wbin\diff.exe -u -F^function %*
%SystemDrive%\Dokumente und Einstellungen\[Nutzername]\Application Data\Subversion\config
öffnen (für gewöhnlich aufC:\
)- Zum Bereich
[Helpers]
folgende Zeile hinzufügen:
diff-cmd = C:\unxutils\diffup.bat
Subversion verwendet somit das externe diff Programm, womit leicht lesbare Patches einfach erstellt werden können.
Hinweis: diff erzeugt unter Windows Dateien mit CRLF Zeilenenden. Ebenso werden "Backslashes" ("\") als Trennzeichen für Pfade verwendet.
Um die Patches auch für UNIX-Systeme zur Verfügung stellen zu können, müssen die "Backslashes" in "/" umgewandelt werden. Weiterhin müssen die Zeilenenden (mit Hilfe eines entsprechenden Editors oder eines dos2unix Programms) in LF (Unix line ending) ungewandelt werden.
- Anmelden oder Registrieren um Kommentare zu schreiben
Neue Kommentare
vor 1 Tag 6 Stunden
vor 2 Tagen 2 Stunden
vor 2 Tagen 4 Stunden
vor 2 Tagen 8 Stunden
vor 2 Tagen 21 Stunden
vor 2 Tagen 22 Stunden
vor 3 Tagen 8 Stunden
vor 3 Tagen 21 Stunden
vor 3 Tagen 23 Stunden
vor 3 Tagen 23 Stunden