Hallo Gunnar,
Auch wenn man darüber streiten kann, ob es sinnvoll ist, es nicht funktionieren zu lassen, wenn doch nur Entities demonstriert werden sollen und nicht den Unterschied zwischen internen und externen DTDs in Browsern.
Weil ich das wirklich pädagogisch unhilfreich finde (und zu Demonstrationszwecken), hab ich das gerade geschilderte Prozedere gemacht.
Ich hab (in der Shell) die öffentliche Arbeitskopie ausgecheckt bzw. überprüft ob sie aktuell war:
$ svn checkout https://vms.selfhtml.org/anon-repos/selfhtml/trunk selfhtml
ls selfhtml
svn update
Revision 4737.
Dann hab ich mit meinem Texteditor die entsprechende Änderung vorgenommen:
$ mate sdml/xml/dtd/entities.xml
In SDML sind Beispiele zusammen mit der erklärenden Seite in einer XML-Datei gespeichert. Hier kannst Du sie Dir im SELFHTML-Versionsverwaltungssystem angucken. Nachdem ich meine Änderungen vorgenommen habe, stellt auch das Versionsverwaltungssystem fest, dass dort Änderungen sind:
$ svn status
M sdml/xml/dtd/entities.xml
M steht für „Modified“. Dann hab ich das Versionsverwaltungssystem die Differenz zwischen dem aktuellen Zustand und dem letzten Checkout ausgeben lassen und diese Ausgabe gleich in der Datei smilie-fix.diff umgelenkt.
$ svn diff > ~/Desktop/smilie-fix.patch
In dieser Datei stehen nun in einem maschinenlesbaren Format die Änderungen. Hier kannst Du sie Dir anschauen. Rot markiert sind weggenommene Rohdaten, grün markiert sind neu hinzugekommende Änderungen.
Nur um zu überprüfen, dass nichts falsch ist, habe ich das Anwenden dieses Patches selber ausprobiert. Erstmal mache ich in meiner lokalen Arbeitskopie die Änderungen rückgängig, so dass die Arbeitkopie wieder jungfräulich ist:
$ svn revert sdml/xml/dtd/entities.xml
Rückgängig gemacht: »sdml/xml/dtd/entities.xml«
svn status
Keine Ausgabe bedeutet „Keine Änderungen“. Und dann habe ich mit dem Tool patch die vorherige Änderung automatisiert angewandt:
$ patch sdml/xml/dtd/entities.xml ../smilie-fix.diff
patching file sdml/xml/dtd/entities.xml
$ svn status
M sdml/xml/dtd/entities.xml
Der Patch funktioniert also, auch wenn man die Datei nochmal manuell überprüft.
...
Dazu habe ich dann einen Ticket in Trac erstellt, das beschreibt, welches das Fehlverhalten ist und wie man es verbessern könnte. An dieses Ticket habe ich dann den Patch dran gehängt. Ein sich zuständig fühlender Redakteur kann sich jetzt also entschliessen, diesen wie oben demonstriert anzuwenden oder die Änderungen selbst noch nach Gusto verändern.
Tim
Alles dauert länger, wenn man es auch noch dabei erklären will.